split patched kernels into their own kernel rows V2

When we have tests on a kernel such as 2.6.24 and against 2.6.24+patch
they are lumped together in the same results row.  This is not optimal
as commonly you are patching those kernels in order to fix a problem and
want to see those separately.  Ideally we would have a row for the virgin
2.6.24 results and a separate row for each different patch combination.

The current structure simply displays the contents of the kernels table
'printable' field when displaying the matrix.  That would necessitate
encoding the base name and all applied patches into this field.
Additionally if we desire to have tooltips, or links to individual patches
the HTML encoding for that would need to be packed into this field.
This is not desirable.

This patch set modifies the meaning of the kernels table printable field,
making it more of a "sortable" field.  This field must be unique for all
kernels, and also approximatly sortable into "kernel release" order.
For kernels without patches, this is simply the base kernel version
as normal.  For patched kernels it is the base kernel version plus the
kernel index number.  This combination effectively allows the kernel to
be sorted by base release, then by date.

Now that the printable field is mearly a sortable identifier, it is no
longer suitable for display.  Thus this patch also introduces a new map
abstraction for data fields.  It supplies a mapper for the kernel field
which uses the sortable kernel identifier to locate the base kernel and
the full list of patches.  For display purposes we want to see the kernel
version plus the names of all the patches, all without allowing making the
kernel column excessively wide.  So the supplied mapper displays the base kernel
version, plus truncated patch names (but with tooltips for the full names).
Which ends up looking something like this:

	2.6.24-mm1 p112
	+add-new-string-functions-
	+x86-amd-thermal-interrupt

This mapping does introduce a single additional query over the patches
table (which is pretty small) before the matrix can be produced, only
when the kernel field is displayed.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1261 592f7852-d20e-0410-864c-8624ca9c26a4
3 files changed