W3C home > Mailing lists > Public > public-test-infra@w3.org > July to September 2016

Re: Tests that fail due to server problems

From: Shane McCarron <shane@spec-ops.io>
Date: Tue, 13 Sep 2016 18:19:39 -0500
Message-ID: <CAJdbnOAtXmzQzu2-BOA3U6Xq=ZuqjLn0tdUpxotvSmQFqQHrEw@mail.gmail.com>
To: Geoffrey Sneddon <me@gsnedders.com>
Cc: Mark Watson <watsonm@netflix.com>, public-test-infra <public-test-infra@w3.org>
The way we are looking to avoid these sorts of dependencies is by building
a skeletal server for various things into WPT itself.  Which works for some
small set of problems, but not all of them I am afraid.

Personally I would prefer a result of NOTRUN over FAIL.  As to how you can
achieve that...  I think that if you establish an async_test at the
beginning and then never have any assertions associated with that test, and
use explicit_done: true you can call "done" after determining the remote
server is unavailable and the async_test will end up in the report with a
value of NOTRUN.

This might not be completely kosher you understand.  I am not up on all the
philosophy.

On Tue, Sep 13, 2016 at 6:12 PM, Geoffrey Sneddon <me@gsnedders.com> wrote:

> On Tue, Sep 13, 2016 at 11:53 PM, Mark Watson <watsonm@netflix.com> wrote:
> > We have some tests (for encrypted-media) which rely on a 3rd party
> server.
> > Presently, if that server fails then the tests report TIMEOUT, which is
> then
> > indistinguishable (for some of the tests) from certain kinds of test
> failure
> > (for example, video was expected to start but never did).
> >
> > What is the appropriate result when the inability to complete the test is
> > due to such a 3rd party dependency, rather than a problem with the
> > implementation under test ? Should this be NOTRUN ? How do we trigger
> this ?
>
> Is there any way to avoid the 3rd party dependency? Typically browser
> vendors have attempted to avoid 3rd party dependencies in tests at all
> costs given it leads to a substantial increase in intermittent
> failures, and tests that fail intermittently typically get disabled,
> especially when they cannot be fixed. (You can't gate landing a patch
> on tests passing if they fail intermittently 0.01% of the time, as
> with a large number of tests it becomes a significant percentage of
> test runs that end up with some intermittent failure, hence you end up
> unable to land any patch.)
>
> As a result, practically the tests are going to end up being manual
> tests regardless of automation or not. As such, I'd suggest what the
> actual status returned is is relatively irrelevant.
>
> I presume from your question that there's some way to detect when the
> 3rd party server fails to respond—I guess what I'd suggest is having
> the tests fail if the server fails to respond, with a description
> saying as much (and probably saying to try running it again).
>
> /gsnedders
>
>


-- 
Shane McCarron
Projects Manager, Spec-Ops
Received on Tuesday, 13 September 2016 23:20:35 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:34:12 UTC