freebsd-dev/contrib/libucl/tests/run_tests.sh
Baptiste Daroussin c99fb5f907 Import libucl into head
UCL is heavily infused by nginx configuration as the example of a convenient
configuration system. However, UCL is fully compatible with JSON format and is
able to parse json files.

UCL is used by pkg(8) for its configuration file as well for the manifest format
in packages, it will be used in base for the pkg boostrap (signature checking
and configuration file parsing.)

libucl has been developped and is maintained by vsevolod@
2014-02-23 21:49:21 +00:00

59 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
if [ $# -lt 1 ] ; then
echo 'Specify binary to run as the first argument'
exit 1
fi
for _tin in ${TEST_DIR}/*.in ; do
_t=`echo $_tin | sed -e 's/.in$//'`
$1 $_t.in $_t.out
if [ $? -ne 0 ] ; then
echo "Test: $_t failed, output:"
cat $_t.out
rm $_t.out
exit 1
fi
if [ -f $_t.res ] ; then
diff -s $_t.out $_t.res -u 2>/dev/null
if [ $? -ne 0 ] ; then
rm $_t.out
echo "Test: $_t output missmatch"
exit 1
fi
fi
rm $_t.out
done
if [ $# -gt 2 ] ; then
$3 ${TEST_DIR}/generate.out
diff -s ${TEST_DIR}/generate.out ${TEST_DIR}/generate.res -u 2>/dev/null
if [ $? -ne 0 ] ; then
rm ${TEST_DIR}/generate.out
echo "Test: generate.res output missmatch"
exit 1
fi
rm ${TEST_DIR}/generate.out
fi
sh -c "xz -c < /dev/null > /dev/null"
if [ $? -eq 0 -a $# -gt 1 ] ; then
echo 'Running speed tests'
for _tin in ${TEST_DIR}/*.xz ; do
echo "Unpacking $_tin..."
xz -cd < $_tin > ${TEST_DIR}/test_file
# Preread file to cheat benchmark!
cat ${TEST_DIR}/test_file > /dev/null
echo "Starting benchmarking for $_tin..."
$2 ${TEST_DIR}/test_file
if [ $? -ne 0 ] ; then
echo "Test: $_tin failed"
rm ${TEST_DIR}/test_file
exit 1
fi
rm ${TEST_DIR}/test_file
done
fi