knot-dns/tests-extra
2026-01-30 10:40:18 +01:00
..
data tests-extra: add SoftHSM backend support 2025-12-12 15:32:49 +00:00
tests server: force zone reload from database if RDB_EVENT_ZONE 2026-01-13 17:25:05 +01:00
tools tests-extra: change the symbol that displays the number of repetitions from # to : 2026-01-06 14:19:49 +01:00
.gitignore func-tests: change location 2013-12-19 16:35:31 +01:00
README tests-extra: add SoftHSM backend support 2025-12-12 15:32:49 +00:00
requirements.txt tests-extra: initial support for testing Knot with Redis backend 2025-09-12 16:50:41 +02:00
runtests.py tests-extra: force forking in multiprocessing library to avoid serialization problems with multiprocessing.Process 2026-01-30 10:40:18 +01:00

Prerequisites:
--------------

python3
dnspython >=2.2.0 (python3-dnspython)
psutil            (python3-psutil)
bind9
dnssec-signzone   (bind9-utils)
dnssec-keygen     (bind9-utils)
dnssec-verify     (bind9-utils)
certtool          (gnutls-bin)
ldnsutils
lsof
gawk
objdump
softhsm2
(valgrind)
(gdb)

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

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

Optional loopback addresses configuration:
------------------------------------------

# for i in {1..64}; do sudo ip address add 127.0.1.$i/32 dev lo; done
# for i in {1..64}; do sudo ip address add ::1$i/128 dev lo; done

Ubuntu:
-------

Disable apparmor protection for system Bind:
$ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.named
or
$ sudo ln -s /etc/apparmor.d/usr.sbin.named /etc/apparmor.d/disable/
$ sudo /etc/init.d/apparmor restart

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

XDP:
----

XDP testing with Valgrind requires running under root. Testing with ASAN is
possible if lsof has two following capabilities:

$ sudo setcap "CAP_SYS_PTRACE,CAP_DAC_OVERRIDE+ep" `which lsof`

And knotd has set:

$ sudo setcap "CAP_NET_RAW,CAP_NET_ADMIN,CAP_SYS_ADMIN,CAP_IPC_LOCK,CAP_SYS_PTRACE+ep" `readlink -f ../src/knotd`

Tcpdump:
--------

$ sudo setcap "CAP_NET_RAW+ep" `which tcpdump`