Fix dnstap system test on FreeBSD
This commit ensures that dnstap output files captured by fstrm_capture are properly flushed before any attempt on reading them with dnstap-read is done. By reading fstrm-capture source code it was noticed that signal SIGHUP is used to flush the capture file.
This commit is contained in:
@@ -16,6 +16,24 @@ RNDCCMD="$RNDC -p ${CONTROLPORT} -c ../common/rndc.conf"
|
||||
|
||||
status=0
|
||||
|
||||
# dnstap_data_ready <fstrm_capture_PID> <capture_file> <min_file_size>
|
||||
# Flushes capture_file and checks wheter its size is >= min_file_size.
|
||||
dnstap_data_ready() {
|
||||
# Process id of running fstrm_capture.
|
||||
fstrm_capture_pid=$1
|
||||
# Output file provided to fstrm_capture via -w switch.
|
||||
capture_file=$2
|
||||
# Minimum expected file size.
|
||||
min_size_expected=$3
|
||||
|
||||
kill -HUP $fstrm_capture_pid
|
||||
file_size=`wc -c < "$capture_file" | tr -d ' '`
|
||||
if [ $file_size -lt $min_size_expected ]; then
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
for bad in bad-*.conf
|
||||
do
|
||||
ret=0
|
||||
@@ -536,6 +554,7 @@ EOF
|
||||
|
||||
echo_i "checking unix socket message counts"
|
||||
sleep 2
|
||||
retry_quiet 5 dnstap_data_ready $fstrm_capture_pid dnstap.out 470
|
||||
kill $fstrm_capture_pid
|
||||
wait
|
||||
udp4=`$DNSTAPREAD dnstap.out | grep "UDP " | wc -l`
|
||||
@@ -647,6 +666,7 @@ EOF
|
||||
|
||||
echo_i "checking reopened unix socket message counts"
|
||||
sleep 2
|
||||
retry_quiet 5 dnstap_data_ready $fstrm_capture_pid dnstap.out 270
|
||||
kill $fstrm_capture_pid
|
||||
wait
|
||||
udp4=`$DNSTAPREAD dnstap.out | grep "UDP " | wc -l`
|
||||
|
||||
Reference in New Issue
Block a user