[Piglit] [PATCH] core: show progress percentage indicator
Dylan Baker
baker.dylan.c at gmail.com
Tue Jan 28 09:27:37 PST 2014
Sorry I missed this.
I have a patch out to do something similar
(http://patchwork.freedesktop.org/patch/17632/), although I was going for
completely replace rather than enhance. The problem with adding to the logger
function is that it is already slowing down piglit runs, with my simpler
output I saw almost a 1 minute improvement in quick.py runtime consistently,
and I could repeat it over and over. I have a few more comments below.
On Wednesday, January 15, 2014 08:45:19 AM Ilia Mirkin wrote:
> This will show X% instead of 'running' in the status, that way it's
> easy to see how far along a particular run is.
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>
> Written while waiting for a piglit run to complete...
>
> framework/core.py | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/framework/core.py b/framework/core.py
> index 7231938..14b07fb 100644
> --- a/framework/core.py
> +++ b/framework/core.py
> @@ -464,7 +464,7 @@ class Test:
> def run(self):
> raise NotImplementedError
>
> - def execute(self, env, path, json_writer):
> + def execute(self, env, run_msg, path, json_writer):
> '''
> Run the test.
>
> @@ -478,7 +478,7 @@ class Test:
> # Run the test
> if env.execute:
> try:
> - status("running")
> + status(run_msg)
> time_start = time.time()
> result = self.run(env)
> time_end = time.time()
> @@ -508,7 +508,7 @@ class Test:
> else:
> json_writer.write_dict_item(path, result)
> else:
> - status("dry-run")
> + status("dry-run %s" % run_msg)
>
>
> class Group(dict):
> @@ -565,6 +565,9 @@ class TestProfile:
> '''
>
> self.prepare_test_list(env)
> + total = len(self.test_list)
> + count = [0]
> + lock = multiprocessing.dummy.Lock()
I'm actually on a campaign to kill Group, I'm just a little sidetracked in the
mess of the Test classes right now, but t would be best not to add code to
Group()
>
> def test(pair):
> """ Function to call test.execute from .map
> @@ -573,7 +576,10 @@ class TestProfile:
>
> """
> name, test = pair
> - test.execute(env, name, json_writer)
> + with lock:
> + count[0] = count[0] + 1
> + pct = 100. * count[0] / total
> + test.execute(env, "%.0f%%" % pct, name, json_writer)
>
> # Multiprocessing.dummy is a wrapper around Threading that provides
> a # multiprocessing compatible API
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20140128/8ac2122c/attachment-0001.pgp>
More information about the Piglit
mailing list