X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=doc%2Fwebserver%2Fdeveloper-manual%2Ftesting.html;h=b96b746d37128e9ca6196a5bd14ddefbbe229b96;hp=80d3f292051358bb3f651e0d9f6e7f6793fb60c5;hb=046e85e2f17f1126b537ece26d1cf5b78c7de2dd;hpb=18e25b02853818f5d1e34ce3c999f5e3a43f6b9d diff --git a/doc/webserver/developer-manual/testing.html b/doc/webserver/developer-manual/testing.html index 80d3f292..b96b746d 100644 --- a/doc/webserver/developer-manual/testing.html +++ b/doc/webserver/developer-manual/testing.html @@ -1,259 +1,190 @@ - -
To be filled.
Explain release numbers. major, minor. developer releases. etc. + + +
+To be filled.
+Explain release numbers. major, minor. developer releases. etc.
+Remove any existing rpm with rpm -e
+Remove any file that was left over. This includes (but is not limited to)
+/var/log/privoxy
+/etc/privoxy
+/usr/sbin/privoxy
+/etc/init.d/privoxy
+/usr/doc/privoxy*
+Install the rpm. Any error messages?
+start,stop,status Privoxy with the specific script (e.g. + /etc/rc.d/init/privoxy stop). Reboot your machine. Does autostart work?
+Start browsing. Does Privoxy work? Logfile written?
+Remove the rpm. Any error messages? All files removed?
+If you compiled, packaged or merely installed Privoxy, it is recommended to run Privoxy-Regression-Test to verify that at least the tested parts of Privoxy are working as expected.
+This is actually pretty easy. For details, please see perldoc + privoxy-regression-test.pl.
+Here is an example of what Privoxy-Regression-Test can do for you:
+
+ # Run all the tests +fk@t520 ~ $privoxy-regression-test.pl +2020-12-14 12:16:32: Asking Privoxy for the number of action files available ... +2020-12-14 12:16:32: Gathering regression tests from 9 action file(s) delivered by Privoxy 3.0.30. +2020-12-14 12:16:32: Executing regression tests ... +2020-12-14 12:16:41: Ooops. Expected removal but: 'Referer: https://p.p/' is still there. +2020-12-14 12:16:41: Failure for test 785. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}' +2020-12-14 12:16:41: Ooops. Got: 'Referer: https://p.p/' while expecting: 'Referer: http://p.p/' +2020-12-14 12:16:41: Failure for test 791. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-forge}' +2020-12-14 12:16:44: Executed 1087 regression tests. Skipped 115. 1085 successes, 2 failures. +# Repeat one of the failing tests and get a curl command to quickly reproduce the problem +# without causing too much log noise. +fk@t520 ~ $privoxy-regression-test.pl --test-number 785 --verbose --debug 4 +2020-12-14 12:17:55: Asking Privoxy for the number of action files available ... +[...] +2020-12-14 12:17:56: Executing regression tests ... +2020-12-14 12:17:56: Executing: curl --include -H 'Proxy-Connection:' -H 'Connection: close' -s -S --user-agent 'Privoxy-Regression-Test 0.7.2' --max-time '5' --globoff -H 'X-Privoxy-Control: hide-referrer{conditional-block}' -H 'Referer: https://p.p/' http://p.p/show-request 2>&1 +2020-12-14 12:17:56: Ooops. Expected removal but: 'Referer: https://p.p/' is still there. +2020-12-14 12:17:56: Failure for test 785 (0/13/5). Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}' +2020-12-14 12:17:56: Executed 1 regression tests. Skipped 1201. 0 successes, 1 failures. ++ |
+
Use the if the --privoxy-address option if the http_proxy environment variable isn't + configured.
+To make fuzzing more convenient, Privoxy can be configured with --enable-fuzz which will result in the --fuzz + option becoming available.
+Example (tested on ElectroBSD):
+
+ # Compile Privoxy with instrumentation for afl +$ export CC=afl-clang +$ export CFLAGS="-fsanitize=address -ggdb" +$ export CPPFLAGS=-I/usr/local/include/ +$ export LDFLAGS="-fsanitize=address -L/usr/local/lib" +$ export AFL_USE_ASAN=1 +$ export AFL_HARDEN=1 +$ ./configure --with-debug --enable-extended-host-patterns --enable-accept-filter --enable-no-gifs --enable-compression --enable-strptime-sanity-checks --enable-external-filters --enable-fuzz -+ |
+