Drop testsummary.sh

testsummary.sh was not updated after build system rewrite to Autotools,
and needs to be fixed to produce test summary and core dump, assertion
failures, and ThreadSanitizer reports.

Given that all of this is provided by Autotools and run.sh already,
there's little use to testsummary.sh script and should be dropped.
This commit is contained in:
Michal Nowak
2020-12-14 20:40:58 +01:00
parent d799d7358d
commit 986b364fe6

View File

@@ -1,91 +0,0 @@
#!/bin/sh
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
# Creates the system tests output file from the various test.output.* files. It
# then searches that file and prints the number of tests passed, failed, not
# run. It also checks whether the IP addresses 10.53.0.[1-8] were set up and,
# if not, prints a warning.
#
# Usage:
# testsummary.sh [-n]
#
# -n Do NOT delete the individual test.output.* files after concatenating
# them into systests.output.
#
# Status return:
# 0 - no tests failed
# 1 - one or more tests failed
. ./conf.sh
keepfile=0
while getopts "n" flag; do
case $flag in
n) keepfile=1 ;;
*) exit 1 ;;
esac
done
if [ "$(find . -name 'test.output.*' 2>/dev/null | wc -l)" -eq 0 ]; then
echowarn "I:No 'test.output.*' files were found."
echowarn "I:Printing summary from pre-existing 'systests.output'."
else
cat test.output.* > systests.output
if [ $keepfile -eq 0 ]; then
rm -f test.output.*
fi
fi
if [ ! -f systests.output ]; then
echowarn "I:No 'systests.output' file found."
exit 1
fi
status=0
echoinfo "I:System test result summary:"
echoinfo "$(grep 'R:[a-z0-9_-][a-z0-9_-]*:[A-Z][A-Z]*' systests.output | cut -d':' -f3 | sort | uniq -c | sed -e 's/^/I:/')"
FAILED_TESTS=$(grep 'R:[a-z0-9_-][a-z0-9_-]*:FAIL' systests.output | cut -d':' -f2 | sort | sed -e 's/^/I: /')
if [ -n "${FAILED_TESTS}" ]; then
echoinfo "I:The following system tests failed:"
echoinfo "${FAILED_TESTS}"
status=1
fi
CRASHED_TESTS=$(find . \( -name 'core' -or -name 'core.*' -or -name '*.core' \) ! -name '*.txt' | cut -d'/' -f2 | sort -u | sed -e 's/^/I: /')
if [ -n "${CRASHED_TESTS}" ]; then
echoinfo "I:Core dumps were found for the following system tests:"
echoinfo "${CRASHED_TESTS}"
fi
ASSERTION_FAILED_TESTS=$(find . -name named.run -print0 | xargs -0 grep "assertion failure" | cut -d'/' -f2 | sort -u | sed -e 's/^/I: /')
if [ -n "${ASSERTION_FAILED_TESTS}" ]; then
echoinfo "I:Assertion failures were detected for the following system tests:"
echoinfo "${ASSERTION_FAILED_TESTS}"
fi
TSAN_REPORT_TESTS=$(find . -name 'tsan.*' | cut -d'/' -f2 | sort -u | sed -e 's/^/I: /')
if [ -n "${TSAN_REPORT_TESTS}" ]; then
echoinfo "I:ThreadSanitizer reported issues for the following system tests:"
echoinfo "${TSAN_REPORT_TESTS}"
fi
RESULTS_FOUND=$(grep -c 'R:[a-z0-9_-][a-z0-9_-]*:[A-Z][A-Z]*' systests.output)
TESTS_RUN=$(echo "${SUBDIRS}" | wc -w)
if [ "${RESULTS_FOUND}" -ne "${TESTS_RUN}" ]; then
echofail "I:Found ${RESULTS_FOUND} test results, but ${TESTS_RUN} tests were run"
status=1
fi
exit $status