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 for some other code simplification

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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, because some
developers have expressed a work flow that uses these empty pages.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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

v2: - Change message to say "No ${page}".

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
piglit-summary.py: print number of fixes and regressions

This information is actually quite useful. It should be noted the
limitation of the text syntax, in that this is the fixes and regressions
(and even changes) from the second to last to last provided json file.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
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

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
junit: Move the old summary code into piglit-summary-junit.py

Since junit.py is an external library used in other projects, there is
little interest in replacing it. However, maintaining multiple summary
backends is tedious, so instead the old summary code is moved into
piglit-summary-junit. This is a valid compromise to keep the old code
(and not screw with what works), and hopefully prevent new output from
being based on it.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
summary: rename NewSummary to Summary

Since the old summary code is gone, the NewSummary class can now be
named just Summary. This should be clearer and easier to understand.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
arb_shading_language_420pack: Test that aggregates can not be used after initialization

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
arb_shading_language_420pack: Test that aggregates can not be used to initialize scalars

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
arb_shading_language_420pack: Test too few elements in array initializer

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
arb_shading_language_420pack: Test too many elements in array initializer

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
arb_shading_language_420pack: Test wrong type in array initializer

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
arb_shading_language_420pack: Test out-of-bounds array dereference of implicitly sized array

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
arb_shading_language_420pack: Test too few elements in vector initializer

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
arb_shading_language_420pack: Test too many elements in vector initializer

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>