mirror of
https://gitlab.nic.cz/knot/knot-dns.git
synced 2026-02-03 18:49:28 -05:00
87 lines
3.2 KiB
Python
87 lines
3.2 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_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 = ""
|