[Piglit] [PATCH 3/3] framework: Exit if a filter removes all tests from a profile

Dylan Baker dylan at pnwbakers.com
Tue Jun 27 16:31:12 UTC 2017


Quoting Martin Peres (2017-06-27 03:38:33)
> On 22/06/17 22:12, Dylan Baker wrote:
> > Quoting Petri Latvala (2017-06-21 01:37:21)
> >> On 06/20/2017 08:59 PM, Dylan Baker wrote:
> >>> Quoting Petri Latvala (2017-06-20 05:41:11)
> >>>> On 04/13/2017 09:46 PM, Dylan Baker wrote:
> >>>>> Quoting Brian Paul (2017-04-12 13:04:59)
> >>>>>> On 04/12/2017 11:55 AM, Dylan Baker wrote:
> >>>>>>> It doesn't makes sense to run if a user has removed all tests from a
> >>>>>>> selected profile, and currently if all tests are removed, then an
> >>>>>>> assertion will be hit in the backend that isn't extremely clear about
> >>>>>>> what went wrong. This should be much easier to understand.
> >>>>>>>
> >>>>>>> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
> >>>>>>> ---
> >>>>>>>      framework/profile.py | 7 +++++++
> >>>>>>>      1 file changed, 7 insertions(+)
> >>>>>>>
> >>>>>>> diff --git a/framework/profile.py b/framework/profile.py
> >>>>>>> index 4604367e1..ce0b24ce8 100644
> >>>>>>> --- a/framework/profile.py
> >>>>>>> +++ b/framework/profile.py
> >>>>>>> @@ -389,6 +389,13 @@ def run(profiles, logger, backend, concurrency):
> >>>>>>>          profiles = [(p, list(p.itertests())) for p in profiles]
> >>>>>>>          log = LogManager(logger, sum(len(l) for _, l in profiles))
> >>>>>>>
> >>>>>>> +    # check that after the filters are run there are actually tests to run
> >>>>>>> +    for p, l in profiles:
> >>>>>>> +        if not l:
> >>>>>>> +            raise exceptions.PiglitUserError(
> >>>>>>> +                'After running filters there are no tests in '
> >>>>>>> +                'profile "{}"'.format(p.name))
> >>>> Bumped into an issue caused by this commit with IGT tests.
> >>>>
> >>>> When the last test of a run never finishes and you attempt to
> >>>>
> >>>>      piglit resume -n test-results-path
> >>>>
> >>>> this exception is raised instead of the expected result of finishing up
> >>>> the run.
> >>>>
> >>>>
> >>>> -- 
> >>>> Petri Latvala
> >>>>
> >>> That is expected with the command line you've supplied.
> >>>
> >>> The -n/--no-retry option instructs piglit to not retry tests that started but
> >>> didn't finish, if you get the same behavior without the -n option that is a bug.
> >>>
> >>> Dylan
> >>
> >>
> >> What is the supported method then to loop resume until results.json.bz2
> >> gets generated? Previous behaviour was that piglit reported that there's
> >> nothing more to do and generated that.
> >>
> >>
> >> -- 
> >> Petri Latvala
> >>
> > 
> > I would use `piglit summary aggregate` to build the results.json.foo file.
> 
> Hi Dylan,
> 
> Petri is on vacation for some time, so let me provide a little more 
> background on why this patch is problematic for our use-case.
> 
> For automated IGT testing, we have a testlist and reboot the machine as 
> soon as we get a certain error condition or if the test takes more than 
> a specified timeout, which reboots the machine immediately (watchdog).
> 
> Once the machine has rebooted, we re-deploy the right kernel and resume 
> piglit testing, using the -n option. When the testing is over, piglit 
> generates the results.json.foo file and returns 0. At this point, 
> ezbench considers the execution as done and does its own things.
> 
> However, since this patch got introduced, if the last test got 
> interrupted, then piglit will raise the PiglitUserError exception which 
> is hard to interpret from outside as a way to say that all the tests 
> have been run and that we should be generating the report. This also 
> introduces an ill-tested codepath, so Petri and I were wondering why not 
> make it less confusing for the user by just realizing that there are no 
> tests left to run, and just generate the report at this point.
> 
> Any suggestion as to what we should be doing? Maybe we could only send 
> this error when no tests have been run already and there are no runs to 
> be run?
> 
> Thanks,
> Martin

Hi Martin,

I really don't think we should remove the exception, the majority of piglit
users are not wrapping piglit in more infrastructure, I think at this point the
Intel kernel and mesa teams are the only ones doing so, and it does report a
real error.

I do think that it would work if `piglit resume` would essentially become
`piglit summary aggregate` if there are no tests left to run, since tests have
actually run and a result would be non-empty.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20170627/ec9406ae/attachment-0001.sig>


More information about the Piglit mailing list