Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > caead09f71a057684f628a1f930dd384 > files > 69

privoxy-3.0.32-1.mga7.armv7hl.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Testing Guidelines</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Coding Guidelines"
HREF="coding.html"><LINK
REL="NEXT"
TITLE="Releasing a New Version"
HREF="newrelease.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="../p_doc.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html;
charset=ISO-8859-1"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#EEEEEE"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Privoxy Developer Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="coding.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="newrelease.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="TESTING"
>5. Testing Guidelines</A
></H1
><P
>To be filled.</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="TESTING-PLAN"
>5.1. Testplan for releases</A
></H2
><P
>       Explain release numbers. major, minor. developer releases. etc.
      </P
><P
></P
><OL
TYPE="1"
><LI
><P
>Remove any existing rpm with rpm -e</P
></LI
><LI
><P
>Remove any file that was left over. This includes (but is not limited to)
          </P
><P
></P
><UL
><LI
><P
>/var/log/privoxy</P
></LI
><LI
><P
>/etc/privoxy</P
></LI
><LI
><P
>/usr/sbin/privoxy</P
></LI
><LI
><P
>/etc/init.d/privoxy</P
></LI
><LI
><P
>/usr/doc/privoxy*</P
></LI
></UL
></LI
><LI
><P
>Install the rpm. Any error messages?</P
></LI
><LI
><P
>start,stop,status <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> with the specific script
      (e.g. /etc/rc.d/init/privoxy stop). Reboot your machine. Does
      autostart work?</P
></LI
><LI
><P
>Start browsing. Does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> work? Logfile written?</P
></LI
><LI
><P
>Remove the rpm. Any error messages? All files removed?</P
></LI
></OL
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="PRIVOXY-REGRESSION-TEST"
>5.2. Testing with <SPAN
CLASS="APPLICATION"
>Privoxy-Regression-Test</SPAN
></A
></H2
><P
>       If you compiled, packaged or merely installed Privoxy, it is recommended to run
       <SPAN
CLASS="APPLICATION"
>Privoxy-Regression-Test</SPAN
> to verify that at least
       the tested parts of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> are working as expected.
     </P
><P
>       This is actually pretty easy. For details, please see
       <B
CLASS="COMMAND"
>perldoc privoxy-regression-test.pl</B
>.
     </P
><P
>      Here is an example of what <SPAN
CLASS="APPLICATION"
>Privoxy-Regression-Test</SPAN
> can do for you:
     </P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
># 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&#62;&#38;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.
     </PRE
></TD
></TR
></TABLE
><P
>      Use the if the <B
CLASS="COMMAND"
>--privoxy-address</B
> option if the
      http_proxy environment variable isn't configured and you don't want
      to use the default (http://127.0.0.1:8118/).
     </P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="FUZZING"
>5.3. Fuzzing Privoxy</A
></H2
><P
>       To make fuzzing more convenient, Privoxy can be configured
       with --enable-fuzz which will result in the --fuzz option
       becoming available.
     </P
><P
>      Example (tested on ElectroBSD):
     </P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
># 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

$ ./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' &#62; input/pcrs
$ afl-fuzz -i input -o output -m none ~/git/privoxy/privoxy --fuzz pcrs-substitute - --stfu

$ cat &#62;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</PRE
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="coding.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="newrelease.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Coding Guidelines</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Releasing a New Version</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>