mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 05:57:52 +00:00
Start named as auth and recursive server in pairwise
The script will start the named process configured as both an authoritative and recursive server for each pairwise ./configure configuration. The test is considered successful if the named process runs until the 5-second timeout is triggered, and there is no named.lock file present, indicating that named did not crash on shutdown.
This commit is contained in:
parent
18f6213dc7
commit
a708c2f93d
@ -14,6 +14,38 @@
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
NAMED_CONF="
|
||||
options {
|
||||
port 5300;
|
||||
listen-on { 127.0.0.1; };
|
||||
listen-on-v6 { ::1; };
|
||||
lock-file \"named.lock\";
|
||||
};
|
||||
|
||||
zone \".\" {
|
||||
type primary;
|
||||
file \"zone.db\";
|
||||
};
|
||||
"
|
||||
|
||||
ZONE_CONTENTS="
|
||||
\$TTL 300
|
||||
@ SOA localhost. localhost.localhost. 1 30 10 3600000 300
|
||||
@ NS localhost.
|
||||
localhost A 127.0.0.1
|
||||
AAAA ::1
|
||||
"
|
||||
|
||||
if ! command -v pict >/dev/null 2>&1; then
|
||||
echo "This script requires the 'pict' utility to be present in PATH." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v timeout >/dev/null 2>&1; then
|
||||
echo "This script requires the 'timeout' utility to be present in PATH." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
grep -v -F "pairwise: skip" configure.ac | sed -n -E "s|.*# \[pairwise: (.*)\]|\1|p" | \
|
||||
while read -r SWITCH; do
|
||||
echo "${RANDOM}: ${SWITCH}"
|
||||
@ -25,9 +57,30 @@ while read -r -a configure_switches; do
|
||||
runid=${RANDOM}
|
||||
mkdir "pairwise-${runid}"
|
||||
cd "pairwise-${runid}"
|
||||
echo "${configure_switches[@]}" | tee "../pairwise-output.${runid}.txt"
|
||||
echo "Configuration:" "${configure_switches[@]}" | tee "../pairwise-output.${runid}.txt"
|
||||
../configure --enable-option-checking=fatal "${configure_switches[@]}" >> "../pairwise-output.${runid}.txt" 2>&1
|
||||
echo "Building..."
|
||||
make "-j${BUILD_PARALLEL_JOBS:-1}" all >> "../pairwise-output.${runid}.txt" 2>&1
|
||||
echo "Running..."
|
||||
echo "${NAMED_CONF}" > named.conf
|
||||
echo "${ZONE_CONTENTS}" > zone.db
|
||||
ret=0
|
||||
timeout --kill-after=5s 5s bin/named/named -c named.conf -g >> "../pairwise-output.${runid}.txt" 2>&1 || ret=$?
|
||||
# "124" is the exit code "timeout" returns when it terminates
|
||||
# the command; in other words, the command-under-test times
|
||||
# out, i.e., was still running and didn't crash.
|
||||
if [ "${ret}" -ne 124 ]; then
|
||||
echo "Unexpected exit code from the 'timeout' utility (${ret})"
|
||||
exit 1
|
||||
fi
|
||||
# "timeout" is unable to report a crash on shutdown via its exit
|
||||
# code. A named instance that exits cleanly is expected to
|
||||
# clean up its configured lock file, so if it is still around at
|
||||
# this point, something went wrong.
|
||||
if [ -f "named.lock" ]; then
|
||||
echo "named did not clean up its lock file, possible crash on shutdown"
|
||||
exit 1
|
||||
fi
|
||||
cd ..
|
||||
rm -rf "pairwise-${runid}" "pairwise-output.${runid}.txt"
|
||||
done < pairwise-commands.txt
|
||||
|
Loading…
x
Reference in New Issue
Block a user