sparse-samplers: Increase tolerance when sampling from linear filterd texture.

Different drivers give a wide range of results. Since the test is not about the
quality of linear filtering just increase the tolerance.
summary: Adds new index.html page

This page is a small page giving an overview of the summary results, it
has a count of the number of tests passed, failed, skipped, etc.
The problem is that with 10,000+ tests, no matter how fast a browser or
computer is it will take a long time to load; further, the all page is
so large it's often not useful for just a quick glance. This page
however, should be useful for just getting an overview of the status.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary.py: replace multiple attributes with a single dict attribute

Replaces self.alltests, self.changes, self.problems, self.regressions,
self.fixes, and self.skipped with self.test, a dictionary containing all
of the same information. This cleans the namespace for the NewSummary
object, as well as allowing some other code to be simplified, because
alltests is now always all.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary.py: Do not generate comparison pages for single results

It is absolutely silly to generate pages for fixes, changes, and
regressions when there is only one test result is provided. This still
generates empty pages when two results are provided, but some developers
have expressed a workflow that uses these empty pages.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary: Generate a new empty page for pages with no results

This new page is able to convey the same information, but takes less
time to generate

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary.py: Split functionality out of NewSummary constructor

Splits the code that finds problems, regressions, fixes, changes, and
skips out of the constructor. Instead of incurring the overhead of
calculating these every time whether they are needed or not the code can
now be smarter about it's path, only generating the ones it needs, if
any.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
piglit-summary-junit.py: Fixes whitespace errors

There were whitespace errors as a result of the recent tabs to spaces
conversion. This patch corrects those

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
junit.mako: Adds new mako file for generating junit xml

Using mako as an alternative to the junit.py file has a couple of
advnatages: First there is a lot less code involved, mako just does most
of the work for us. Second, it works in almost the same way as the HTML
generation.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary.py: Adds method to NewSummary to generate junit XML

This method is about 50% faster than the existing implementation which
uses junit.py.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
piglit-summary-junit.py: Use NewSummary.generateJUnit

Stop using the old JUnit generation code, and start using the new code.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
junit.py: Remove unused file

Since this is no longer in use, remove it

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary.py: Adds missing 'tests' field to junit <testsuite>

This field is required by the JUnit xsd, and was not provided. With this
change the JUnit xml being produced is valid.

xsd source: https://svn.jenkins-ci.org/trunk/hudson/dtkit/dtkit-format/
dtkit-junit-model/src/main/resources/com/thalesgroup/dtkit/junit/model/
xsd/junit-4.xsd

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
piglit-summary.py: convert from getopt to argparse

Argparse requires less code, and is much easier to read and maintain.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary.py: Adds generateText() method and private helper

These two new methods allow the new summary backend to generated an
equivalent output to the old summery backend output of
piglit-summary.py.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
piglit-summary.py: Use NewSummary for text generation

This changes piglit-summary.py to use the new text generation of the
summary backend, instead of the old.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary.py: Remove all of the old summary backend

Since nothing now depends on the old summary backend, delete it. This
first eliminates dead code, but also ensures that no new functionality
becomes dependent on this code.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary: Rename NewSummary to Summary

The old name existed simply as a holdover until the Summary name could
be cleared up. Since it is now available, use the Summary name.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
piglit-summary.py: Make -s and -d mutually exclusive

Since -s/--summary will always override -d/--diff don't allow them to be
called together. While this may seem a little confusing, the idea of
asking for --diffs and then not getting them is a bug in the original
implementation.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>