cfc6ad9bc6
This change is a proof of concept on how to easily integrate existing tests from the tools/regression/ hierarchy into the /usr/tests/ test suite and on how to adapt them to the new layout for src. To achieve these goals, this change: - Moves tests from tools/regression/bin/<tool>/ to bin/<tool>/tests/. - Renames the previous regress.sh files to legacy_test.sh. - Adds Makefiles to build and install the tests and all their supporting data files into /usr/tests/bin/. - Plugs the legacy_test test programs into the test suite using the new TAP backend for Kyua (appearing in 0.8) so that the code of the test programs does not have to change. - Registers the new directories in the BSD.test.dist mtree file. Reviewed by: freebsd-testing Approved by: rpaulo (mentor)
47 lines
1.1 KiB
Bash
47 lines
1.1 KiB
Bash
# $FreeBSD$
|
|
|
|
: ${SH:="__SH__"}
|
|
export SH
|
|
|
|
# TODO(jmmv): The Kyua TAP interface should be passing us the value of
|
|
# "srcdir" as an environment variable, just as it does with the ATF
|
|
# interface in the form of a configuration variable. For now, just try
|
|
# to guess this.
|
|
: ${TESTS_DATA:=$(dirname ${0})}
|
|
|
|
COUNTER=1
|
|
|
|
do_test() {
|
|
c=${COUNTER}
|
|
COUNTER=$((COUNTER+1))
|
|
${SH} $1 > tmp.stdout 2> tmp.stderr
|
|
if [ $? -ne $2 ]; then
|
|
echo "not ok ${c} - ${1} # wrong exit status"
|
|
rm tmp.stdout tmp.stderr
|
|
return
|
|
fi
|
|
sed -I '' -e "s|^${TESTS_DATA}|.|" tmp.stderr
|
|
for i in stdout stderr; do
|
|
if [ -f ${1}.${i} ]; then
|
|
if ! cmp -s tmp.${i} ${1}.${i}; then
|
|
echo "not ok ${c} - ${1} # wrong output on ${i}"
|
|
rm tmp.stdout tmp.stderr
|
|
return
|
|
fi
|
|
elif [ -s tmp.${i} ]; then
|
|
echo "not ok ${c} - ${1} # wrong output on ${i}"
|
|
rm tmp.stdout tmp.stderr
|
|
return
|
|
fi
|
|
done
|
|
echo "ok ${c} - ${1}"
|
|
rm tmp.stdout tmp.stderr
|
|
}
|
|
|
|
TESTS=$(find -Es ${TESTS_DATA} -regex ".*\.[0-9]+")
|
|
printf "1..%d\n" $(echo ${TESTS} | wc -w)
|
|
|
|
for i in ${TESTS} ; do
|
|
do_test ${i} ${i##*.}
|
|
done
|