11591693c7b415e9869157c711fe11263c95d74eDavid Li#!/bin/sh 21591693c7b415e9869157c711fe11263c95d74eDavid Li 31591693c7b415e9869157c711fe11263c95d74eDavid Litrap 'rm $test.valgrind-errors; exit 1' INT QUIT 41591693c7b415e9869157c711fe11263c95d74eDavid Li 51591693c7b415e9869157c711fe11263c95d74eDavid Litotal=0 61591693c7b415e9869157c711fe11263c95d74eDavid Lipass=0 71591693c7b415e9869157c711fe11263c95d74eDavid Liclean=0 81591693c7b415e9869157c711fe11263c95d74eDavid Li 91591693c7b415e9869157c711fe11263c95d74eDavid Liecho "====== Testing for correctness ======" 101591693c7b415e9869157c711fe11263c95d74eDavid Lifor test in *.c; do 111591693c7b415e9869157c711fe11263c95d74eDavid Li echo -n "Testing $test..." 121591693c7b415e9869157c711fe11263c95d74eDavid Li ../glcpp < $test > $test.out 2>&1 131591693c7b415e9869157c711fe11263c95d74eDavid Li total=$((total+1)) 141591693c7b415e9869157c711fe11263c95d74eDavid Li if cmp $test.expected $test.out >/dev/null 2>&1; then 151591693c7b415e9869157c711fe11263c95d74eDavid Li echo "PASS" 161591693c7b415e9869157c711fe11263c95d74eDavid Li pass=$((pass+1)) 171591693c7b415e9869157c711fe11263c95d74eDavid Li else 181591693c7b415e9869157c711fe11263c95d74eDavid Li echo "FAIL" 191591693c7b415e9869157c711fe11263c95d74eDavid Li diff -u $test.expected $test.out 201591693c7b415e9869157c711fe11263c95d74eDavid Li fi 211591693c7b415e9869157c711fe11263c95d74eDavid Lidone 221591693c7b415e9869157c711fe11263c95d74eDavid Li 231591693c7b415e9869157c711fe11263c95d74eDavid Liecho "" 241591693c7b415e9869157c711fe11263c95d74eDavid Liecho "$pass/$total tests returned correct results" 251591693c7b415e9869157c711fe11263c95d74eDavid Liecho "" 261591693c7b415e9869157c711fe11263c95d74eDavid Li 271591693c7b415e9869157c711fe11263c95d74eDavid Liecho "====== Testing for valgrind cleanliness ======" 281591693c7b415e9869157c711fe11263c95d74eDavid Lifor test in *.c; do 291591693c7b415e9869157c711fe11263c95d74eDavid Li echo -n "Testing $test with valgrind..." 301591693c7b415e9869157c711fe11263c95d74eDavid Li valgrind --error-exitcode=31 --log-file=$test.valgrind-errors ../glcpp < $test >/dev/null 2>&1 311591693c7b415e9869157c711fe11263c95d74eDavid Li if [ "$?" = "31" ]; then 321591693c7b415e9869157c711fe11263c95d74eDavid Li echo "ERRORS" 331591693c7b415e9869157c711fe11263c95d74eDavid Li cat $test.valgrind-errors 341591693c7b415e9869157c711fe11263c95d74eDavid Li else 351591693c7b415e9869157c711fe11263c95d74eDavid Li echo "CLEAN" 361591693c7b415e9869157c711fe11263c95d74eDavid Li clean=$((clean+1)) 371591693c7b415e9869157c711fe11263c95d74eDavid Li rm $test.valgrind-errors 381591693c7b415e9869157c711fe11263c95d74eDavid Li fi 391591693c7b415e9869157c711fe11263c95d74eDavid Lidone 401591693c7b415e9869157c711fe11263c95d74eDavid Li 411591693c7b415e9869157c711fe11263c95d74eDavid Liecho "" 421591693c7b415e9869157c711fe11263c95d74eDavid Liecho "$pass/$total tests returned correct results" 431591693c7b415e9869157c711fe11263c95d74eDavid Liecho "$clean/$total tests are valgrind-clean" 441591693c7b415e9869157c711fe11263c95d74eDavid Li 451591693c7b415e9869157c711fe11263c95d74eDavid Liif [ "$pass" = "$total" ] && [ "$clean" = "$total" ]; then 461591693c7b415e9869157c711fe11263c95d74eDavid Li exit 0 471591693c7b415e9869157c711fe11263c95d74eDavid Lielse 481591693c7b415e9869157c711fe11263c95d74eDavid Li exit 1 491591693c7b415e9869157c711fe11263c95d74eDavid Lifi 501591693c7b415e9869157c711fe11263c95d74eDavid Li 51