[Piglit] [PATCH v2 03/11] templates: adds mako templates for new summary code

Kenneth Graunke kenneth at whitecape.org
Sat May 25 02:34:18 PDT 2013


On 05/17/2013 09:31 AM, Dylan Baker wrote:
> Adds the actual templates used to by the new mako based summary code.
>
> Signed-off-by: Dylan Baker <baker.dylan.c at gmail.com>

It would be great to use spaces in this (rather than tabs) for 
consistency.  The embedded Python code already uses spaces.

> ---
>   templates/index.mako       | 79 ++++++++++++++++++++++++++++++++++++++++++++++
>   templates/test_index.mako  | 49 ++++++++++++++++++++++++++++
>   templates/test_result.mako | 47 +++++++++++++++++++++++++++
>   3 files changed, 175 insertions(+)
>   create mode 100644 templates/index.mako
>   create mode 100644 templates/test_index.mako
>   create mode 100644 templates/test_result.mako
>
> diff --git a/templates/index.mako b/templates/index.mako
> new file mode 100644
> index 0000000..acc597d
> --- /dev/null
> +++ b/templates/index.mako
> @@ -0,0 +1,79 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html xmlns="http://www.w3.org/1999/xhtml">
> +	<head>
> +		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> +		<title>Result summary</title>
> +		<link rel="stylesheet" href="index.css" type="text/css" />
> +	</head>
> +	<body>
> +		<h1>Result summary</h1>
> +		<p>Currently showing: all</p>
> +		<p>Show:
> +			% for i in ['index', 'changes', 'fixes', 'problems', 'regressions', 'skipped']:
> +				% if i == page:
> +          ${page}
> +        % elif i == 'index':
> +          % if page == 'all':
> +          all
> +          % else:
> +          <a href="index.html">all</a>
> +          % endif
> +				% else:
> +					<a href="${i}.html">${i}</a>
> +				% endif
> +				% if i != "skipped":
> +					|
> +				% endif
> +			% endfor

Since the first item in your list (index/all) is a special case, you 
might consider doing that outside the loop.  Then, you can put | before 
each link, and you won't have to special case 'skipped':

% if page == 'all':
     all
% else:
     <a href="index.html">all</a>
% endif

% for i in ['changes', 'fixes', 'problems', 'regressions', 'skipped']:
     |
     % if i == page:
         ${page}
     % else:
         <a href="${i}.html">${i}</a>
     % endif:
% endfor

It's a bit tidier that way.  (I probably botched the indenting, I 
haven't yet learned how that works in Mako...)

> +		</p>
> +		<table>
> +			<colgroup>
> +				## Name Column
> +				<col />
> +
> +				## Status columns
> +				## Create an additional column for each summary
> +				% for _ in xrange(colnum):
> +				<col />
> +				% endfor
> +			</colgroup>
> +			% for line in results:
> +				% if line['type'] == "newRow":
> +				<tr>
> +				% elif line['type'] == "endRow":
> +				</tr>
> +				% elif line['type'] == "groupRow":
> +					<td>
> +						<div class="${line['class']}" style="margin-left: ${line['indent']}em">
> +							<b>${line['text']}</b>
> +						</div>
> +					</td>
> +				% elif line['type'] == "testRow":
> +					<td>
> +						<div class="${line['class']}" style="margin-left: ${line['indent']}em">
> +							${line['text']}
> +						</div>
> +					</td>
> +				% elif line['type'] == "groupResult":
> +					<td class="${line['class']}">
> +						<b>${line['text']}</b>
> +					</td>
> +				% elif line['type'] == "testResult":
> +					<td class="${line['class']}">
> +						<a href="${line['href']}">
> +							${line['text']}
> +						</a>
> +					</td>
> +        % elif line['type'] == "subtestResult":
> +					<td class="${line['class']}">
> +            ${line['text']}
> +					</td>
> +				% elif line['type'] == "other":
> +					${line['text']}
> +				% endif
> +			% endfor
> +		</table>
> +	</body>
> +</html>
> diff --git a/templates/test_index.mako b/templates/test_index.mako
> new file mode 100644
> index 0000000..edfab91
> --- /dev/null
> +++ b/templates/test_index.mako

Perhaps call this test_run_info.mako?  This page contains system info, 
and the link to get there is "(info)", so that name makes it pretty 
clear what the page is at a glance.

In contrast, "test" makes me think of an individual test (rather than a 
whole test run) and "index" is pretty generic.

I don't feel too strongly about it though.

> @@ -0,0 +1,49 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//END"
> + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html xmlns="http://www.w3.org/1999/xhtml">
> +	<head>
> +		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> +		<title>${name} - System info</title>
> +		<link rel="stylesheet" href="../result.css" type="text/css" />
> +	</head>
> +	<body>
> +		<h1>System info for ${name}</h1>
> +		<p>
> +			<a href="../index.html">Back to summary</a>
> +		</p>
> +		<table>
> +			<tr>
> +				<th>Detail</th>
> +				<th>Value</th>
> +			</tr>
> +			<tr>
> +				<td>time_elapsed</td>
> +				<td>${time}</td>
> +			</tr>
> +			<tr>
> +				<td>name</td>
> +				<td>${name}</td>
> +			</tr>
> +			<tr>
> +				<td>options</td>
> +				<td>${options}</td>
> +			</tr>
> +			<tr>
> +				<td>lspci</td>
> +				<td>
> +					<pre>${lspci}</pre>
> +				</td>
> +			</tr>
> +			<tr>
> +				<td>glxinfo</td>
> +				<td>
> +					<pre>${glxinfo}</pre>
> +				</td>
> +			</tr>
> +		</table>
> +		<p>
> +			<a href="../index.html">Back to summary</a>
> +		</p>
> +	</body>
> +</html>
> diff --git a/templates/test_result.mako b/templates/test_result.mako
> new file mode 100644
> index 0000000..1f944cb
> --- /dev/null
> +++ b/templates/test_result.mako
> @@ -0,0 +1,47 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//END"
> + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html xmlns="http://www.w3.org/1999/xhtml">
> +	<head>
> +		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> +		<title>${testname} - Details</title>
> +		<link rel="stylesheet" href="../result.css" type="text/css" />
> +	</head>
> +	<body>
> +		<h1>Results for ${testname}</h1>
> +		<h2>Overview</h2>
> +		<div>
> +			<p><b>Status:</b> ${status}</p>
> +			<p><b>Result:</b> ${status}</p>
> +		</div>
> +		<p><a href="../index.html">Back to summary</a></p>
> +		<h2>Details</h2>
> +		<table>
> +			<tr>
> +				<th>Detail</th>
> +				<th>Value</th>
> +			</tr>
> +			<tr>
> +				<td>Returncode</td>
> +				<td>${returncode}</td>
> +			</tr>
> +			<tr>
> +				<td>Time</td>
> +				<td>${time}</b>
> +			</tr>
> +			<tr>
> +				<td>Info</td>
> +				<td>
> +					<pre>${info}</pre>
> +				</td>
> +			</tr>
> +			<tr>
> +				<td>Command</td>
> +				<td>
> +					</pre>${command}</pre>
> +				</td>
> +			</tr>
> +		</table>
> +		<p><a href="../index.html">Back to summary</a></p>
> +	</body>
> +</html>

Other than those suggestions, this looks good to me!


More information about the Piglit mailing list