|
Packit |
0b5880 |
#!/usr/bin/env sh
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
TESTS_RUN=0
|
|
Packit |
0b5880 |
TESTS_PASSED=0
|
|
Packit |
0b5880 |
TESTS_FAILED=0
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
TEST_DIRS='empty_input pass_thru single_test_line basic_complete'
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS multiple_everything between_the_lines"
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS repeated_suites repeated_tcases repeated_tests"
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS not_really_repeated tcase_implied_repeat"
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS case_insensitive_pp trailing_ws non_word_chars"
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS test_chars num_start_test_name"
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS no_args clean_mode declarations test_after_main_pre"
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS main_pre_multiple main_post main_pre_after_post"
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS test_after_main_post main_post_multiple ucn"
|
|
Packit |
0b5880 |
TEST_DIRS="$TEST_DIRS invalid_ucn argument_ws repeated_argument_tests"
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
check_dir() {
|
|
Packit |
0b5880 |
status=0
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
checkmkdir=$PWD
|
|
Packit |
0b5880 |
outdir="test.out/$1"
|
|
Packit |
0b5880 |
testdir="$srcdir/test/$1"
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if ! mkdir -p "$outdir"
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
echo "Couldn't make path \"$outdir\"!"
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
outdir=$(cd "$outdir" && pwd)
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if ! cd "$testdir"
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
echo "Couldn't chdir to \"$testdir\"!"
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# set up expected input/output file names
|
|
Packit |
0b5880 |
infname=in
|
|
Packit |
0b5880 |
outfname="$outdir/output"
|
|
Packit |
0b5880 |
errfname="$outdir/err"
|
|
Packit |
0b5880 |
diffname="$outdir/diff"
|
|
Packit |
0b5880 |
errdiffname="$outdir/err-diff"
|
|
Packit |
0b5880 |
CHECKMK="$checkmkdir/checkmk"
|
|
Packit |
0b5880 |
checkmk_cmd='"$CHECKMK" "$infname" > "$outfname" 2>"$errfname"'
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
rm -f "$outfname" "$errfname" "$diffname" "$errdiffname"
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# source local versions, if available.
|
|
Packit |
0b5880 |
[ -r ./cmd ] && . ./cmd
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# Check output.
|
|
Packit |
0b5880 |
eval "$checkmk_cmd"
|
|
Packit |
0b5880 |
ckstat=$?
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if ! diff -c "x_output" "$outfname" > "$diffname"
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
echo "Unexpected output differences:"
|
|
Packit |
0b5880 |
cat "$diffname"
|
|
Packit |
0b5880 |
status=1
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# Check stderr.
|
|
Packit |
0b5880 |
if [ -s x_err ]
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
if ! diff -c "x_err" "$errfname" > "$errdiffname"
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
echo "Unexpected error differences:"
|
|
Packit |
0b5880 |
cat "$errdiffname"
|
|
Packit |
0b5880 |
status=1
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
elif [ -s err ]
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
echo "Unexpected text from standard error:"
|
|
Packit |
0b5880 |
echo "------------------------------------"
|
|
Packit |
0b5880 |
cat "$errfname"
|
|
Packit |
0b5880 |
echo "------------------------------------"
|
|
Packit |
0b5880 |
status=1
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
# Check status.
|
|
Packit |
0b5880 |
xstat=0
|
|
Packit |
0b5880 |
if [ -e "x_exit" ]
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
xstat=`cat x_exit`
|
|
Packit |
0b5880 |
elif [ -s "x_err" ]
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
xstat=1
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if [ $xstat != $ckstat ]
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
echo "Expected exit status of $xstat, but got $ckstat."
|
|
Packit |
0b5880 |
status=1
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
return $status
|
|
Packit |
0b5880 |
}
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
pass_dir() {
|
|
Packit |
0b5880 |
echo "Test $1 passed."
|
|
Packit |
0b5880 |
TESTS_PASSED=$(($TESTS_PASSED+1))
|
|
Packit |
0b5880 |
}
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
fail_dir() {
|
|
Packit |
0b5880 |
echo "Test $1 FAILED."
|
|
Packit |
0b5880 |
TESTS_FAILED=$(($TESTS_FAILED+1))
|
|
Packit |
0b5880 |
}
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
echo "These are the tests for the checkmk program."
|
|
Packit |
0b5880 |
echo
|
|
Packit |
0b5880 |
echo "===================="
|
|
Packit |
0b5880 |
echo " Test Run Start"
|
|
Packit |
0b5880 |
echo "===================="
|
|
Packit |
0b5880 |
echo
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
for dir in $TEST_DIRS
|
|
Packit |
0b5880 |
do
|
|
Packit |
0b5880 |
echo "Running test $dir..."
|
|
Packit |
0b5880 |
if ( check_dir $dir )
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
pass_dir $dir
|
|
Packit |
0b5880 |
else
|
|
Packit |
0b5880 |
fail_dir $dir
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
TESTS_RUN=$(($TESTS_RUN+1))
|
|
Packit |
0b5880 |
echo
|
|
Packit |
0b5880 |
done
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
echo "===================="
|
|
Packit |
0b5880 |
echo " Test Run Complete"
|
|
Packit |
0b5880 |
echo "===================="
|
|
Packit |
0b5880 |
echo "Total: $TESTS_RUN"
|
|
Packit |
0b5880 |
echo "Passed: $TESTS_PASSED"
|
|
Packit |
0b5880 |
echo "Failed: $TESTS_FAILED"
|
|
Packit |
0b5880 |
|
|
Packit |
0b5880 |
if [ "$TESTS_FAILED" -gt 0 ]
|
|
Packit |
0b5880 |
then
|
|
Packit |
0b5880 |
echo
|
|
Packit |
0b5880 |
echo "****************************************"
|
|
Packit |
0b5880 |
echo " TEST RUN FAILED!!!!"
|
|
Packit |
0b5880 |
echo "****************************************"
|
|
Packit |
0b5880 |
exit 1;
|
|
Packit |
0b5880 |
fi
|
|
Packit |
0b5880 |
echo
|