X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=doc%2Fwebserver%2Fdeveloper-manual%2Ftesting.html;h=46c398c8233f689e0b6f08842a281a69f24b7cb8;hb=100f48795eee7d2996bff48871bf745af01811c7;hp=79bb5cc48d5a4f590f44dd06d9d0f432c42bbe43;hpb=72081f829de368392d04076728f8c991178c0080;p=privoxy.git diff --git a/doc/webserver/developer-manual/testing.html b/doc/webserver/developer-manual/testing.html index 79bb5cc4..46c398c8 100644 --- a/doc/webserver/developer-manual/testing.html +++ b/doc/webserver/developer-manual/testing.html @@ -1,256 +1,151 @@ - -Testing Guidelines
Privoxy Developer Manual
PrevNext

5. Testing Guidelines

To be filled.

5.1. Testplan for releases

Explain release numbers. major, minor. developer releases. etc. + + + + Testing Guidelines + + + + + + + + +

+
+

5. Testing Guidelines

+

To be filled.

+
+

5.1. Testplan for releases

+

Explain release numbers. major, minor. developer releases. etc.

+
    +
  1. +

    Remove any existing rpm with rpm -e

    +
  2. +
  3. +

    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*

      +
    • +
    +
  4. +
  5. +

    Install the rpm. Any error messages?

    +
  6. +
  7. +

    start,stop,status Privoxy with the specific script (e.g. + /etc/rc.d/init/privoxy stop). Reboot your machine. Does autostart work?

    +
  8. +
  9. +

    Start browsing. Does Privoxy work? Logfile written?

    +
  10. +
  11. +

    Remove the rpm. Any error messages? All files removed?

    +
  12. +
+
+
+

5.2. Fuzzing Privoxy

+

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
 
-

  1. Remove any existing rpm with rpm -e

  2. 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*

  3. Install the rpm. Any error messages?

  4. start,stop,status Privoxy with the specific script - (e.g. /etc/rc.d/init/privoxy stop). Reboot your machine. Does - autostart work?

  5. Start browsing. Does Privoxy work? Logfile written?

  6. Remove the rpm. Any error messages? All files removed?

5.2. Test reports

Please submit test reports only with the test form -at sourceforge. Three simple steps: -

  • Select category: the distribution you test on.

  • Select group: the version of Privoxy that we are about to release.

  • Fill the Summary and Detailed Description with something - intelligent (keep it short and precise).

- Do not mail to the mailing list (we cannot keep track on issues there). -


PrevHomeNext
Coding Guidelines Releasing a New Version
\ No newline at end of file +$ ./privoxy --fuzz +Privoxy version 3.0.24 (http://www.privoxy.org/) +Usage: ./privoxy [--config-test] [--chroot] [--help] [--no-daemon] [--pidfile pidfile] [--pre-chroot-nslookup hostname] [--user user[.group]] [--version] [configfile] + ./privoxy --fuzz fuzz-mode ./path/to/fuzzed/input [--stfu] + +Supported fuzz modes and the expected input: + action: Text to parse as action file. + client-request: Client request to parse. Currently incomplete + client-header: Client header to parse. + chunked-transfer-encoding: Chunk-encoded data to dechunk. + deflate: deflate-compressed data to decompress. + filter: Text to parse as filter file. + gif: gif to deanimate. + gzip: gzip-compressed data to decompress. + pcrs-substitute: A pcrs-substitute to compile. Not a whole pcrs job! Example: Bla $1 bla C $3 blah. + server-header: Server header to parse. + server-response: Server response to parse. + +The following fuzz modes read data from stdin if the 'file' is '-' + client-request + client-header + chunked-transfer-encoding + deflate + gif + gzip + pcrs-substitute + server-header + server-response + +Aborting + +$ export ASAN_OPTIONS='abort_on_error=1' +$ mkdir input output +$ echo '$1 bla fasel $2' > input/pcrs +$ afl-fuzz -i input -o output -m none ~/git/privoxy/privoxy --fuzz pcrs-substitute - --stfu + +$ cat >input/pcrs.txt +FILTER: bla fasel +s@(.{1})[432](\d+)@$1$2$hostname@UgisT + +$ afl-fuzz -i input/ -o output/ -f bla.filter -m none privoxy --fuzz filter bla.filter --stfu
+
+
+
+ + +