1README unbound tests
2
3For a quick test that runs unit tests and state machine tests, use
4	make test
5
6There is a long test setup for unbound that needs tools installed. Use
7	make longtest
8To make and run the long tests. The results are summarized at the end.
9
10You need to have the following programs installed and in your PATH.
11* dig - from the bind-tools package. Used to send DNS queries.
12* splint (optional) - for lint test
13* doxygen (optional) - for doc completeness test
14* ldns-testns - from ldns examples. Used as DNS auth server.
15* xxd and nc (optional) - for (malformed) packet transmission.
16The optional programs are detected and can be omitted.
17
18You can also use prepared Dockerfile to run tests inside docker based on latest gcc image:
19* build container: docker build -t unbound-tester -f contrib/Dockerfile.tests .
20* run container: docker run -it --mount type=bind,source="$(pwd)",target=/usr/src/unbound --rm unbound-tester
21* configure environment: ./configure
22* run test: make test
23* run long tests: make longtest
24It is worth to mention that you need to enable [ipv6 in your docker daemon configuration](https://docs.docker.com/config/daemon/ipv6/) because some tests need ipv6 network stack.
25
26testdata/ contains the data for tests. 
27testcode/ contains scripts and c code for the tests.
28
29do-tests.sh : runs all the tests in the testdata directory.
30testbed.sh : compiles on a set of (user specific) hosts and runs do-tests.
31
32Tests are run using testcode/mini_tpkg.sh.
33