Re: 3.0.20 regression testing

Fabian Keil <[email protected]>
Newsgroups gmane.comp.web.privoxy.devel
Message-ID <[email protected]>
Ian Silvester <[email protected]> wrote:

> Following Fabian's prompting I've explored using privoxy-regression-test.pl
> and thought I should start a thread where we discuss results.
> 
> First of all, Fabian you're a star for having written this thing - I feel
> very strongly that good testing is a prerequisite of a new release and this
> tool gives us confidence as to whether the new release at least does not break
> any existing filtering, and does so with great ease! Lee if it's not too much
> of a pain please run the test set on Windows (no doubt Fabian you do so on BSD!).

Thanks for the kind words.

One thing to keep in mind is that privoxy-regression-test.pl can
only test a small subset of things that could be theoretically
tested, though. As far as "coverage" is concerned we are probably
still at the "well it's better than nothing" stage.

For example we currently have no way to automatically test the
effect of filters (TODO #1) and another serious limitation is
that privoxy-regression-test.pl doesn't help with HTTP compliance
testing (with a few exceptions).

The latter issue is where the previously mentioned curl test suite
will shine, but it's still work in progress:
http://curl.haxx.se/mail/lib-2012-11/0145.html

By the way you were right about me mainly testing on FreeBSD,
and something privoxy-regression-test.pl wasn't explicitly designed
to detect but did anyway as a side effect was a recent regression
in FreeBSD's TCP/IP stack that has since been temporarily reverted:
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/173309

> So then, I ran the standard test set on OS X using the following command line
> (the privoxy address is necessary since the OS X command line does not respect
> the System Preference proxy config and hence p.p is not routeable):
> 
> /privoxy-regression-test.pl --privoxy-address 127.0.0.1:8118 --show-skipped-tests --max-level 109
> 
> The results were pretty good - only one failure:
> 
> 2013-01-03 11:55:58: Asking Privoxy for the number of action files available ...
> 2013-01-03 11:55:58: Gathering regression tests from 3 action file(s) delivered by Privoxy.
> 2013-01-03 11:55:58: Executing regression tests ...
> 2013-01-03 11:55:59: Failure for test 72/72/0/72. Supposedly-blocked URL: 'http://www91.intel.com/b/ss/intelcorp,intelcorpdc/...ONDataProvider.aspx%3FDownloadType%3DDrivers&ot=A&AQE=1'
> 2013-01-03 11:56:02: Skipping test 345: Ignore flag is set.
> 2013-01-03 11:56:02: Skipping test 346: Ignore flag is set.
> 2013-01-03 11:56:02: Skipping test 347: Ignore flag is set.
> 2013-01-03 11:56:02: Skipping test 348: Ignore flag is set.
> 2013-01-03 11:56:02: Skipping test 349: Ignore flag is set.
> 2013-01-03 11:56:02: Executed 345 regression tests. Skipped 5. 344 successes, 1 failures.

Given the 3 action files and the 345 executed tests I assume that
you tested with default.action (which happens to contain 345 tests)
and two other action files that don't have any additional tests.

This is supposed to cause test failures if sections in default.action
whose effects are tested are overruled.

It's a valid use case, though, as that's helpful for users with a
modified configuration to verify that they don't unintentionally
overrule sections they might care about.

It also a good idea in general to try to write tests for custom
action file changes as well, to be able to quickly test that they
work as expected and keep working as expected in case of changes
in the future.

What's currently missing for this is proper support to signal
privoxy-regression-test.pl something like "I intentionally cause
earlier tests in other files to fail with these URLs, so don't
execute the tests".

The options in this situation are currently removing or disabling the
test, ignoring the test failure, or removing the modification that
intentionally causes the test failure.

> The thing is, this being the first time I've run the test I don't know if this
> is a regression that 3.0.20 introduced (maybe due to the new /download unblocker
> from actionsfile feedback #3498129?). I guess I'll downgrade to 3.0.19 and retest.

Assuming you are indeed using custom action files, I'd start
testing without them first.

You could also check:
http://config.privoxy.org/show-url-info?url=http%3A%2F%2Fwww91.intel.com%2Fb%2Fss%2Fintelcorp%2Cintelcorpdc%2F...ONDataProvider.aspx%253FDownloadType%253DDrivers%26ot%3DA%26AQE%3D1
to quickly see what Privoxy thinks about the URL.

It's working for me as expected:

fk@r500 ~/git/privoxy $privoxy-regression-test.pl --test-number 72 --verbose
2013-01-03 20:15:44: Asking Privoxy for the number of action files available ...
2013-01-03 20:15:44: Gathering regression tests from 9 action file(s) delivered by Privoxy.
2013-01-03 20:15:45: Executing regression tests ...
2013-01-03 20:15:45: Success for test 0/72/0/72. Supposedly-blocked URL: 'http://www91.intel.com/b/ss/intelcorp,intelcorpdc/...ONDataProvider.aspx%3FDownloadType%3DDrivers&ot=A&AQE=1'
2013-01-03 20:15:45: Executed 1 regression tests. Skipped 1027. 1 successes, 0 failures.

I usually configure Privoxy with FEATURE_EXTENDED_HOST_PATTERNS, though,
so we are probably not testing the same Privoxy code and theoretically
this could also explain test differences (in this case it probably
doesn't, though).

> Looking forward to others' results!

Using only the official files:

actionsfile match-all.action
actionsfile default.action
actionsfile regression-tests.action

I get:

fk@r500 ~/git/privoxy $privoxy-regression-test.pl --max-level 109 --show-skipped-tests
2013-01-03 20:26:44: Asking Privoxy for the number of action files available ...
2013-01-03 20:26:44: Gathering regression tests from 3 action file(s) delivered by Privoxy.
2013-01-03 20:26:44: Executing regression tests ...
2013-01-03 20:26:54: Skipping test 467: depends on 'FEATURE_CONNECTION_KEEP_ALIVE' being set to 'No'.
2013-01-03 20:26:54: Skipping test 468: depends on 'FEATURE_CONNECTION_KEEP_ALIVE' being set to 'No'.
2013-01-03 20:26:54: Skipping test 470: depends on config line matching: 'connection-sharing\s+1'.
2013-01-03 20:26:54: Skipping test 471: depends on config line matching: 'connection-sharing\s+1'.
2013-01-03 20:26:54: Skipping test 475: depends on 'FEATURE_CONNECTION_KEEP_ALIVE' being set to 'No'.
2013-01-03 20:26:54: Skipping test 484: depends on 'FEATURE_GRACEFUL_TERMINATION' being set to 'Yes'.
2013-01-03 20:26:54: Skipping test 509: depends on 'FEATURE_TOGGLE' being set to 'No'.
2013-01-03 20:26:57: Executed 658 regression tests. Skipped 7. 658 successes, 0 failures.

And with my standard configuration:

fk@r500 ~/git/privoxy $privoxy-regression-test.pl --max-level 200 --show-skipped-tests
2013-01-03 20:27:56: Asking Privoxy for the number of action files available ...
2013-01-03 20:27:56: Gathering regression tests from 9 action file(s) delivered by Privoxy.
2013-01-03 20:27:57: Executing regression tests ...
2013-01-03 20:27:59: Failure for test 104/104/0/104. Supposedly-blocked URL: 'http://rover.ebay.com/ar/1/2/3?mpt=123&adtype=1&size=728x90'
2013-01-03 20:28:02: Ooops. '-block' is not among the final results.
2013-01-03 20:28:02: Failure for test 217/217/0/217. Sticky Actions: '-block' and URL: 'http://apps.facebook.com/onthefarm/track.php?creative=&cat=friendvisit&subcat=weeds&key=a789a971dc687bee4c20c044834fabdd&next=index.php%3Fref%3Dnotif%26visitId%3D898835505'
2013-01-03 20:28:06: Skipping test 399: Ignore flag is set.
2013-01-03 20:28:06: Skipping test 409: Ignore flag is set.
2013-01-03 20:28:06: Skipping test 410: Ignore flag is set.
2013-01-03 20:28:08: Skipping test 482: depends on 'FEATURE_EXTERNAL_FILTERS' being set to 'Yes'.
2013-01-03 20:28:08: Skipping test 483: depends on 'FEATURE_EXTERNAL_FILTERS' being set to 'Yes'.
2013-01-03 20:28:08: Skipping test 484: depends on 'FEATURE_EXTERNAL_FILTERS' being set to 'Yes'.
2013-01-03 20:28:09: Skipping test 509: Ignore flag is set.
2013-01-03 20:28:09: Skipping test 510: Ignore flag is set.
2013-01-03 20:28:14: Skipping test 771: depends on 'FEATURE_CONNECTION_KEEP_ALIVE' being set to 'No'.
2013-01-03 20:28:14: Skipping test 772: depends on 'FEATURE_CONNECTION_KEEP_ALIVE' being set to 'No'.
2013-01-03 20:28:14: Skipping test 774: depends on config line matching: 'connection-sharing\s+1'.
2013-01-03 20:28:14: Skipping test 775: depends on config line matching: 'connection-sharing\s+1'.
2013-01-03 20:28:14: Skipping test 779: depends on 'FEATURE_CONNECTION_KEEP_ALIVE' being set to 'No'.
2013-01-03 20:28:14: Skipping test 788: depends on 'FEATURE_GRACEFUL_TERMINATION' being set to 'Yes'.
2013-01-03 20:28:15: Skipping test 813: depends on 'FEATURE_TOGGLE' being set to 'No'.
2013-01-03 20:28:19: Skipping test 1022: Ignore flag is set.
2013-01-03 20:28:19: Skipping test 1024: Ignore flag is set.
2013-01-03 20:28:19: Executed 1011 regression tests. Skipped 17. 1009 successes, 2 failures.

The two test failures here are the result of me intentionally overriding
sections in default.action in my own files without being able to explain
this to privoxy-regression-test.pl as described above.

I usually silence them by setting the ignore flag, but of course
each default.action update removes the flags again and I just
"updated" it before this test ...

Fabian

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122712

_______________________________________________
Ijbswa-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ijbswa-developers
signature.asc (application/pgp-signature, 196 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iEYEARECAAYFAlDl5DIACgkQSMVSH78upWOOsACeKsD1Bz/i1SbNcHonle5GeWv/
P+IAnjNXcKGwXtI+6CHv67C/b6ffVSCz
=4SVB
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.