#!/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[] = {${tests}0};" >> $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 "$@"