knot-dns/tests-extra/tools/dnstest/params.py
Libor Peltan e43440cefc nameserver/XFRout: multi-msg locked by rwlock instead RCU...
...prevents locking updates to unrelated zones as well
2025-04-28 08:47:57 +02:00

89 lines
3.3 KiB
Python

#!/usr/bin/env python3
'''
This module allows interchanging of running parameters between modules.
'''
import os, shutil
module_path = os.path.dirname(os.path.realpath(__file__))
repo_path = os.path.realpath(os.path.join(module_path, "..", "..", ".."))
build_path = os.environ.get("KNOT_TEST_BUILD_PATH", repo_path)
def repo_binary(name):
"""Get absolute path to a binary in Knot DNS sources."""
return os.path.join(build_path, name)
def get_binary(env_name, default):
env = os.environ.get(env_name)
# Disable.
if env == "":
return ""
# Use new or default value.
name = env if env else default
path = shutil.which(name)
# Notify user that he set wrong binary
if env and not path:
print("Binary \'%s\' not found" % name)
exit(1)
return path
def get_param(env_name, default):
env = os.environ.get(env_name)
# Disable.
if env == "":
return ""
# Use new or default value.
return env if env else default
# Indication of debug mode (print ERR on stdout).
debug = False
# Number of available loopback addreeses per each IP version
addresses = 1
# Indication of allowed XDP testing
xdp = False
# KNOT_TEST_VALGRIND - valgrind binary if defined.
valgrind_bin = get_binary("KNOT_TEST_VALGRIND", "valgrind")
# KNOT_TEST_VALGRIND_FLAGS - valgrind flags.
valgrind_flags = get_param("KNOT_TEST_VALGRIND_FLAGS",
"--leak-check=full --show-leak-kinds=all --track-origins=yes --vgdb=yes --verbose --num-callers=20 --trace-children=yes --trace-children-skip=/usr/*sh,/bin/*sh")
# KNOT_TEST_GDB - gdb binary.
gdb_bin = get_binary("KNOT_TEST_GDB", "gdb")
# KNOT_TEST_VGDB - vgdb binary.
vgdb_bin = get_binary("KNOT_TEST_VGDB", "vgdb")
# KNOT_TEST_LIBTOOL - libtool script.
libtool_bin = get_binary("KNOT_TEST_LIBTOOL", repo_binary("libtool"))
# KNOT_TEST_LIBKNOT - libknot library.
libknot_lib = get_binary("KNOT_TEST_LIBKNOT", repo_binary("src/.libs/libknot.so"))
# KNOT_TEST_KNOT - Knot binary.
knot_bin = get_binary("KNOT_TEST_KNOT", repo_binary("src/knotd"))
# KNOT_TEST_KNOTC - Knot control binary.
knot_ctl = get_binary("KNOT_TEST_KNOTC", repo_binary("src/knotc"))
# KNOT_TEST_KDIG - Digging binary.
kdig_bin = get_binary("KNOT_TEST_KDIG", repo_binary("src/kdig"))
# KNOT_TEST_KEYMGR - Knot key management binary.
keymgr_bin = get_binary("KNOT_TEST_KEYMGR", repo_binary("src/keymgr"))
# KNOT_TEST_KJOURNALPRINT - Knot journal print binary.
kjournalprint_bin = get_binary("KNOT_TEST_KJOURNALPRINT", repo_binary("src/kjournalprint"))
# KNOT_TEST_KNSUPDATE - Knot dynamic DNS update binary.
knsupdate_bin = get_binary("KNOT_TEST_KNSUPDATE", repo_binary("src/knsupdate"))
# KNOT_TEST_KCATALOGPRINT - Knot catalog print binary.
kcatalogprint_bin = get_binary("KNOT_TEST_KCATALOGPRINT", repo_binary("src/kcatalogprint"))
# KNOT_TEST_BIND - Bind binary.
bind_bin = get_binary("KNOT_TEST_BIND", "named")
# KNOT_TEST_BINDC - Bind control binary.
bind_ctl = get_binary("KNOT_TEST_BINDC", "rndc")
# KNOT_TEST_BIND_CHECKCONF - Bind checkconf binary.
bind_checkconf_bin = get_binary("KNOT_TEST_BIND_CHECKCONF", "named-checkconf")
# KNOT_TEST_OUTS_DIR - working directories location.
outs_dir = get_param("KNOT_TEST_OUTS_DIR", "/tmp")
# HOME - tester's home directory for the "knottest-last" symbolic link.
home_dir = get_param("HOME", "/tmp")
# Common data directory (e.g. zone files).
common_data_dir = ""