aboutsummaryrefslogblamecommitdiff
path: root/doc/README.tests
blob: 376f01717fdd63b180a951009b356724f95e036d (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
















                                                                      







                                                                                                                                                                                  






                                                                          
README unbound tests

For a quick test that runs unit tests and state machine tests, use
	make test

There is a long test setup for unbound that needs tools installed. Use
	make longtest
To make and run the long tests. The results are summarized at the end.

You need to have the following programs installed and in your PATH.
* dig - from the bind-tools package. Used to send DNS queries.
* splint (optional) - for lint test
* doxygen (optional) - for doc completeness test
* ldns-testns - from ldns examples. Used as DNS auth server.
* xxd and nc (optional) - for (malformed) packet transmission.
The optional programs are detected and can be omitted.

You can also use prepared Dockerfile to run tests inside docker based on latest gcc image:
* build container: docker build -t unbound-tester -f contrib/Dockerfile.tests .
* run container: docker run -it --mount type=bind,source="$(pwd)",target=/usr/src/unbound --rm unbound-tester
* configure environment: ./configure
* run test: make test
* run long tests: make longtest
It 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.

testdata/ contains the data for tests. 
testcode/ contains scripts and c code for the tests.

do-tests.sh : runs all the tests in the testdata directory.
testbed.sh : compiles on a set of (user specific) hosts and runs do-tests.

Tests are run using testcode/mini_tpkg.sh.