44 lines
1.1 KiB
Bash
Executable File
44 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
dirs=src/kernel
|
|
|
|
main()
|
|
{
|
|
local failures=0
|
|
for dir in $dirs; do
|
|
local files=`find $dir -name "*.tt"`
|
|
for suite in $files; do
|
|
|
|
cp $suite $suite.c
|
|
local tests=`sed -n -e 's/^\s*TEST(\([^,]*\)).*$/ttt_\1/p' $suite`
|
|
|
|
echo "tt_test tt_tests[] = {" >> $suite.c
|
|
for t in $tests; do echo "$t," >> $suite.c; done
|
|
echo "0};" >> $suite.c
|
|
|
|
echo "char *tt_test_names[] = {" >> $suite.c
|
|
for t in $tests; do echo "\"$t\"," >> $suite.c; done
|
|
echo "\"\"};" >> $suite.c
|
|
|
|
test_exec=`mktemp /tmp/tmp.XXXXXX`
|
|
compiler_output=`cc $suite.c -o $test_exec -ggdb -I $dir/include -DTTEST 2>&1`
|
|
compiler_status=$?
|
|
|
|
echo -e "\x1b[35m$suite\x1b[0m"
|
|
if [[ "$compiler_status" -eq "0" ]]; then
|
|
$test_exec $suite || failures=$(($failures + 1))
|
|
else
|
|
failures=$(($failures + 1))
|
|
echo -e "\x1b[31mCOMPILATION OF SUITE FAILED\x1b[0m"
|
|
echo "$compiler_output" | sed -e 's/\.tt\.c:/\.tt:/'
|
|
fi
|
|
rm -f $suite.c $test_exec
|
|
done
|
|
done
|
|
|
|
exit $failures
|
|
|
|
}
|
|
|
|
main "$@"
|