Skip to content
Snippets Groups Projects
Prerequisites:
==============

Python >=3.3
dnspython >=1.16.0
python3-psutil
dnssec-signzone
dnssec-keygen
dnssec-verify
Bind 9.9.x
lsof
gawk
objdump
(valgrind)
(gdb)

Python modules:
---------------

To install necessary Python modules using pip, run:
$ pip install -r requirements.txt

Ubuntu:
-------

Disable apparmor protection for system Bind:
# sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.named

Allow ptrace:
# echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
or
change file /etc/sysctl.d/10-ptrace.conf
kernel.yama.ptrace_scope = 0

Running in docker container:
----------------------------

There is a Dockerfile that can be used to build containers with the tests-extra,
the main benefit is that each test runs in an isolated container and can be run in parallel.

Run tests on the upstream branch:
---------------------------------

$ docker pull cznic/knot:tests-extra # Or build with 'docker build -t tests-extra .'
$ docker run -it -v cznic/knot:tests-extra basic

Run tests on the local executables:
-----------------------------------

You can bind-mount the /src with the current working copy.

$ docker run -it -v $(pwd)/..:/knot-src cznic/knot:tests-extra basic