38e35e0973
* Use "printf" instead of "echo -n" as it's more portable * Treat a test as skipped if it exits with exit status of 77 * Skip the check_exports test if "nm -D" doesn't work
90 lines
2.0 KiB
Bash
90 lines
2.0 KiB
Bash
# Copyright (c) 2009-2011 Petri Lehtinen <petri@digip.org>
|
|
#
|
|
# Jansson is free software; you can redistribute it and/or modify
|
|
# it under the terms of the MIT license. See LICENSE for details.
|
|
|
|
json_process=$bindir/json_process
|
|
|
|
suite_name=$1
|
|
suite_srcdir=$suites_srcdir/$suite_name
|
|
suite_builddir=$suites_builddir/$suite_name
|
|
suite_log=$logdir/$suite_name
|
|
|
|
|
|
[ -z "$VERBOSE" ] && VERBOSE=0
|
|
[ -z "$STOP" ] && STOP=0
|
|
|
|
. $scriptdir/valgrind.sh
|
|
|
|
rm -rf $suite_log
|
|
mkdir -p $suite_log
|
|
|
|
for test_path in $suite_srcdir/*; do
|
|
test_name=$(basename $test_path)
|
|
test_builddir=$suite_builddir/$test_name
|
|
test_log=$suite_log/$test_name
|
|
|
|
[ "$test_name" = "run" ] && continue
|
|
is_test || continue
|
|
|
|
rm -rf $test_log
|
|
mkdir -p $test_log
|
|
if [ $VERBOSE -eq 1 ]; then
|
|
printf '%s... ' "$test_name"
|
|
fi
|
|
|
|
run_test
|
|
case $? in
|
|
0)
|
|
# Success
|
|
if [ $VERBOSE -eq 1 ]; then
|
|
printf 'ok\n'
|
|
else
|
|
printf '.'
|
|
fi
|
|
rm -rf $test_log
|
|
;;
|
|
|
|
77)
|
|
# Skip
|
|
if [ $VERBOSE -eq 1 ]; then
|
|
printf 'skipped\n'
|
|
else
|
|
printf 'S'
|
|
fi
|
|
rm -rf $test_log
|
|
;;
|
|
|
|
*)
|
|
# Failure
|
|
if [ $VERBOSE -eq 1 ]; then
|
|
printf 'FAILED\n'
|
|
else
|
|
printf 'F'
|
|
fi
|
|
|
|
[ $STOP -eq 1 ] && break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ $VERBOSE -eq 0 ]; then
|
|
printf '\n'
|
|
fi
|
|
|
|
if [ -n "$(ls -A $suite_log)" ]; then
|
|
for test_log in $suite_log/*; do
|
|
test_name=$(basename $test_log)
|
|
test_path=$suite_srcdir/$test_name
|
|
echo "================================================================="
|
|
echo "$suite_name/$test_name"
|
|
echo "================================================================="
|
|
show_error
|
|
echo
|
|
done
|
|
echo "================================================================="
|
|
exit 1
|
|
else
|
|
rm -rf $suite_log
|
|
fi
|