# HG changeset patch # User Paul Boddie # Date 1480959055 -3600 # Node ID 5159c0d73bbf4a12204525402f788359e6906505 # Parent 5a7b1c0974a5675c20841120c1d6dc7cb139523b Added an option to build and run tests, saving their output for inspection. diff -r 5a7b1c0974a5 -r 5159c0d73bbf test_all.sh --- a/test_all.sh Mon Dec 05 17:47:56 2016 +0100 +++ b/test_all.sh Mon Dec 05 18:30:55 2016 +0100 @@ -23,7 +23,22 @@ # Main program. +OPTION=$1 + +# Make any required results directory. + +if [ "$OPTION" = '--build' ]; then + if [ ! -e "_results" ]; then + mkdir "_results" + else + rm "_results/"* + fi +fi + +# Perform each test. + for FILENAME in tests/* ; do + TESTNAME=`basename "$FILENAME" .py` # Detect tests in their own subdirectories. @@ -68,5 +83,23 @@ echo " (warnings)..." 1>&2 if ! check_type_warnings ; then exit 1 ; fi + # Build and run if appropriate. + + if [ "$OPTION" = '--build' ]; then + BUILDLOG="_results/$TESTNAME.build" + OUTLOG="_results/$TESTNAME.out" + + echo " (build)..." 1>&2 + if ! make -C _generated clean > "$BUILDLOG" || \ + ! make -C _generated > "$BUILDLOG" ; then + exit 1 + fi + + echo " (run)..." 1>&2 + if ! "_generated/main" > "$OUTLOG" ; then + exit 1 + fi + fi + echo 1>&2 done