html: Use CSS for indenting table rows rather than colspan.

Previously, we indented groups of tests by adding 10 columns
of whitespace to the table and adding colspan.  This is pretty
ugly; we really should use CSS for things like this.

The new CSS-based approach should work with deeper nesting levels,
and simplifies the tables.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
html: Use CSS3 for zebra-striping the tables.

Most browsers support the :nth-child selector by now, which allows us to
zebra-stripe the tables in CSS rather than making the python code
annotate every row with an 'a' or 'b' class.

While we're at it, stripe the pass/fail/crash results too.  Based on
some CSS fragments, this was the intent all along, but didn't work.

This also changes the striping slightly: it now stripes purely based on
whether the row is even/odd, rather than striping on a per-group basis.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
html: Remove the index_groupgroup template.

It was entirely empty.

Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
html: Rework colgroup generation.

There's no need to specify width="50pt" on every <col/>; we can easily
specify a width for all but the first column with CSS3.

At that point, using a template file that contains only <col/> seems
absurd; just repeat that the right number of times in the python code.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
index.css: Change column width from 50pt to 70pt

This accommodates the increase in the total number of tests, so that the
column default width is great enough for the 'all' category, which is
now 5 digits over 5 digits, a total of 11 characters.

[V2] Add this file to address concerns from Ken Graunke

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
html: Use the vastly faster "fixed" table layout algorithm.

The usual "auto" table layout algorithm makes the browser look at the
contents of each row in the table in order to determine the layout.  We
have 10,000 rows.  This is insanely expensive.

The "fixed" algorithm just uses the <col/> info, and possibly the first
row.  This works out just fine.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
html: Escape test names in the summary page.

Characters like & and < are need to be escaped in proper HTML/XML.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
html: Use XHTML 1.0 Strict.

We weren't specifying a DTD, which made validator.w3.org angry.  There's
no reason not to be strict or use SGML-based HTML, so go with XHTML.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>