[igt-dev] [PATCH i-g-t v2 4/5] runner: New test runner

Antonio Argenziano antonio.argenziano at intel.com
Thu Jun 14 20:14:52 UTC 2018



On 14/06/18 03:18, Petri Latvala wrote:
> On Wed, Jun 13, 2018 at 10:10:11AM -0700, Antonio Argenziano wrote:
>>
>>
>> On 13/06/18 03:07, Petri Latvala wrote:
>>> This is a new test runner to replace piglit. Piglit has been very
>>> useful as a test runner, but certain improvements have been very
>>> difficult if possible at all in a generic test running framework.
>>>
>>> Important improvements over piglit:
>>>
>>> - Faster to launch. Being able to make assumptions about what we're
>>>     executing makes it possible to save significant amounts of time. For
>>>     example, a testlist file's line "igt at somebinary@somesubtest" already
>>>     has all the information we need to construct the correct command
>>>     line to execute that particular subtest, instead of listing all
>>>     subtests of all test binaries and mapping them to command
>>>     lines. Same goes for the regexp filters command line flags -t and
>>>     -x; If we use -x somebinaryname, we don't need to list subtests from
>>>     somebinaryname, we already know none of them will get executed.
>>>
>>> - Logs of incomplete tests. Piglit collects test output to memory and
>>>     dumps them to a file when the test is complete. The new runner
>>>     writes all output to disk immediately.
>>>
>>> - Ability to execute multiple subtests in one binary execution. This
>>>     was possible with piglit, but its semantics made it very hard to
>>>     implement in practice. For example, having a testlist file not only
>>>     selected a subset of tests to run, but also mandated that they be
>>>     executed in the same order.
>>>
>>> - Flexible timeout support. Instead of mandating a time tests cannot
>>>     exceed, the new runner has a timeout on inactivity. Activity is
>>>     any output on the test's stdout or stderr, or kernel activity via
>>>     /dev/kmsg.
>>
>> Is there going to be also a (longer) timeout on execution time? It would
>> help if a test is stuck in a loop (e.g. retrying on EAGAIN forever) and is
>> therefore responsive but just not progressing forward.
> 
> What timeout values are used in CI and in which way is still up in the
> air. With an inactivity timeout (as implemented here) we can have
> individual tests that run for more than the 10 minutes that piglit
> enforces (as long as they seem alive), and have timeouts earlier for
> tests that don't seem active. Other possibilities (in addition to
> inactivity timeout) are overall timeouts for "full execution of this
> test list should take 15 minutes total, tops", or having a cap for an
> individual subtest, an individual binary (all subtests it's going to
> run in this execution), and combine those with expanding the testlist
> format to specify the caps based on real data. Meaning,

I would prefer a large per-subtest execution timeout paired with a small 
inactivity timeout. Where the values of large and small would probably 
have to be chosen empirically. This way a 'bad' test would fail still 
but not affect the results from other tests in the same run.

> 
> igt at foobar@frob-some 60

Could this be auto-generated from somewhere?

Thanks,
Antonio

> 
> would kill that process after 60 seconds.
> 
> 


More information about the igt-dev mailing list