mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 06:25:31 +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:
@@ -14,6 +14,38 @@
|
|||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
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" | \
|
grep -v -F "pairwise: skip" configure.ac | sed -n -E "s|.*# \[pairwise: (.*)\]|\1|p" | \
|
||||||
while read -r SWITCH; do
|
while read -r SWITCH; do
|
||||||
echo "${RANDOM}: ${SWITCH}"
|
echo "${RANDOM}: ${SWITCH}"
|
||||||
@@ -25,9 +57,30 @@ while read -r -a configure_switches; do
|
|||||||
runid=${RANDOM}
|
runid=${RANDOM}
|
||||||
mkdir "pairwise-${runid}"
|
mkdir "pairwise-${runid}"
|
||||||
cd "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
|
../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
|
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 ..
|
cd ..
|
||||||
rm -rf "pairwise-${runid}" "pairwise-output.${runid}.txt"
|
rm -rf "pairwise-${runid}" "pairwise-output.${runid}.txt"
|
||||||
done < pairwise-commands.txt
|
done < pairwise-commands.txt
|
||||||
|
Reference in New Issue
Block a user