<div dir="ltr"><div>This is the latest piglit branch being able to run dEQP without process isolation. It's "rebased" on master. My definition is "rebased" is pretty radical, but it's all I can do:</div><div><br></div><div><a href="https://cgit.freedesktop.org/~mareko/piglit/log/?h=deqp">https://cgit.freedesktop.org/~mareko/piglit/log/?h=deqp</a></div><div><br></div><div>Marek<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 11, 2017 at 6:26 AM, Nicolai Hähnle <span dir="ltr"><<a href="mailto:nhaehnle@gmail.com" target="_blank">nhaehnle@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
This series allows running dEQP tests (including GL CTS) without process<br>
isolation. I've been using it quite successfully for the last few weeks,<br>
though there are a bunch of loose ends, off the top of my head:<br>
<br>
1. One remaining spurious failure in the `gpu` profile<br>
2. Only tested on gpu, deqp_*, cts_gl45, khr_gl45 profiles<br>
3. Unit tests are completely and utterly broken<br>
4. junit backend is untested and likely needs fixes<br>
<br>
The reason for all this is that in order to convince Piglit to run dEQP<br>
tests without process isolation, I ended up refactoring a lot of its<br>
internals. Most of this is documented in the commit messages, but a<br>
rough overview:<br>
<br>
1. Multiple TestResults can co-exist at the same "root" in the test<br>
   hierarchy. So you can have many TestResults that all have the root<br>
   'deqp-gles31@functional', and subtests spread out across possibly<br>
   overlapping subgroups. This obviously involves a change in the<br>
   on-disk format for storing results.<br>
<br>
2. Test cases are no longer grouped in the profile description. Instead,<br>
   there's the concept of a TestWorkItem, which groups a bunch of tests<br>
   that are to be run in one batch by the same TestRunner.<br>
<br>
   This means that the test case objects are no longer responsible for<br>
   running themselves; that's the domain of the separate TestRunner<br>
   hierarchy. TestRunners for shader tests and dEQP tests know how to<br>
   run multiple tests in one batch, and how to parse the test process<br>
   outputs into subtest results.<br>
<br>
   Theoretically that should also allow running shader tests from different<br>
   directories together, but I haven't done that in this series.<br>
<br>
3. TestWorkItems are grouped deterministically in the profile run logic,<br>
   which means that resumed test runs can still have process isolation<br>
   disabled!<br>
<br>
You can find the whole series in context with some other stuff at<br>
<a href="https://cgit.freedesktop.org/~nh/piglit/log/?h=deqp-run-multi" rel="noreferrer" target="_blank">https://cgit.freedesktop.org/~<wbr>nh/piglit/log/?h=deqp-run-<wbr>multi</a><br>
<br>
I probably won't be able to really polish and clean this up any time<br>
soon, so it would be awesome if somebody would volunteer for this admittedly<br>
unthankful task. In the meantime, the code is out there, and I hope other<br>
people will find it useful.<br>
<br>
Cheers,<br>
Nicolai<br>
<br>
______________________________<wbr>_________________<br>
Piglit mailing list<br>
<a href="mailto:Piglit@lists.freedesktop.org">Piglit@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/piglit" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/piglit</a><br>
</blockquote></div><br></div>