Improve terminology: the testsuite "passed", not "succeeded".
[bigint/bigint.git] / run-testsuite
CommitLineData
706f6a7e
MM
1#!/bin/bash
2
3bad=
4
d8a8a836
MM
5if [ "$NO_VALGRIND" ]; then
6 cmd=(./testsuite)
7else
8 cmd=(valgrind --error-exitcode=1 --leak-check=full ./testsuite)
9fi
10
706f6a7e 11set -o pipefail
d8a8a836
MM
12# Stdout goes directly to testsuite.out; stderr goes down the pipe.
13if ! "${cmd[@]}" 2>&1 >testsuite.out | tee testsuite.err; then
706f6a7e
MM
14 echo >&2 'Memory errors!'
15 bad=1
16fi
17
18if grep 'LEAK SUMMARY' testsuite.err >/dev/null; then
19 echo >&2 'Memory leaks!'
20 bad=1
21fi
22
23if ! diff -u testsuite.expected testsuite.out; then
24 echo >&2 'Output is incorrect!'
25 bad=1
26fi
27
28if [ $bad ]; then
29 echo >&2 'Test suite failed!'
30 exit 1
31else
e39c0ed2 32 echo 'Test suite passed.'
706f6a7e 33fi