On 12 June 2014 06:37, Jens Rehsack <rehs...@gmail.com> wrote:

> > 1. begin test
> > 2. load test networking module module
> > 3. is NO_NETWORK_TESTING? SKIP!
> > 4. can access specified resources?  yes -> run tests
> >                                                       no   -> SKIP!
>
> In that case I suggest to FAIL instead of skip. Maybe is that part of the
> error.



Really whether or not that fails would be an installer choice.

For instance, me, I would basically say "If you cant access the internet,
don't bother doing tests that require the internet". After all, the running
of the test suite is not to give me a "pass/fail: Your internet works", but
to test the code in question functions as intended.

The only time I'd want the tests to fail is if I was running the tests
_AND_ want assurredness that the network tests in fact work as intended,
and that the non-network tests are not sufficient for my personal installer
satisfaction.

Then those tests would fail every time they couldn't use the internet, and
I'd know I have to fix my internet and run them again.

But that case is very much not the usecase of a bulk smoke tester.

If a tester box doesn't have internet visible during 'make test', I'd
expect tests that require internet access to be skipped ( or exit N/A
somehow ), not give the developer of the module spurious FAIL results that
revolve around something the developer can do nothing about, FAIL reports
that don't indicate the code is broken, merely that the person who ran the
tests has broken internet.


Based on some of the comments on #perl-qa , it seems there may also be a
use for declaring 2 or 3 grades of internet access.

1. Loopback only access: Basic network functions work, you can spawn a HTTP
test server for something like PSGI, and connect to it from another Perl
process and IPC between the two.

2. LAN only access: There are other machines on a LAN, some semblance of
DNS will probably work and resolve HOSTNAME to a network routable IP, but
internet traffic is still expected to not work. ( Or there's a (broken?)
firewall standing between LAN and WAN than can resolve global DNS addresses
but not relay packets )

3. Full internet


Now we probably don't need to represent all of these, just they're scopes
to take into consideration. You'd think case #1 would never need blocking
off, however, the person who raised that case mentioned in the context of
"Localhost is firewalled".  And that would mess things up. ( And I doubt
anyone is interested in going through a firewall just to allow open ports
for some random Perl test )

Most of those levels we could indeed check for with code, but having a
"Don't even check, its not worth the cycles, you'll probably get it wrong,
and trying may even cause an explosion because somebody attached C4 to a
network device somewhere in the house"  control would be still useful.

( And I guess the "weird networks are weird all over the place" problem is
one reason why the default is to have network tests opt-in instead of
opt-out.  )

-- 
Kent

Reply via email to