On Tue, 2018-05-08 at 10:32 -0700, Dylan Baker wrote: > test_list is an iterator, you can't walk an iterator more than once. To > solve this we use itertools.tee, which creates a shared buffer for the > iterators to draw from. This fixes errors like: >
Cool!! It seems to fix the problem. Thank you! Reviewed-by: Juan A. Suarez <jasua...@igalia.com> > [000/480] > Traceback (most recent call last): > File "./piglit", line 178, in <module> > main() > File "./piglit", line 174, in main > sys.exit(runner(args)) > File "/home/user/piglit/framework/exceptions.py", line 51, in _inner > func(*args, **kwargs) > File "/home/user/piglit/framework/programs/run.py", line 370, in run > backend.finalize({'time_elapsed': time_elapsed.to_json()}) > File "/home/user/piglit/framework/backends/json.py", line 163, in finalize > assert data['tests'] > AssertionError > > Thanks Tomi for figuring out what was wrong with the original patch! > > CC: Michel Dänzer <mic...@daenzer.net> > CC: Tomi Sarvela <tomi.p.sarv...@intel.com> > CC: "Juan A. Suarez Romero" <jasua...@igalia.com> > --- > framework/profile.py | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/framework/profile.py b/framework/profile.py > index 1c75025b3..5161f6e4c 100644 > --- a/framework/profile.py > +++ b/framework/profile.py > @@ -596,13 +596,16 @@ def run(profiles, logger, backend, concurrency): > run_threads(single, profile, test_list) > else: > assert concurrency == "some" > + # test_list is an iterator, we need to copy it to run it twice. > + test_list = itertools.tee(test_list, 2) > + > # Filter and return only thread safe tests to the threaded pool > - run_threads(multi, profile, test_list, > + run_threads(multi, profile, test_list[0], > lambda x: x[1].run_concurrent) > > # Filter and return the non thread safe tests to the single > # pool > - run_threads(single, profile, test_list, > + run_threads(single, profile, test_list[1], > lambda x: not x[1].run_concurrent) > profile.teardown() > _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit