File: diff-test

package info (click to toggle)
esh 0.3.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 316 kB
  • sloc: sh: 431; makefile: 55
file content (35 lines) | stat: -rwxr-xr-x 845 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh
# vim: set ts=4:
set -eu

_diff() {
	diff -uU 999 -L "$1" -L "$2" "$1" "$2"
}

: ${TEST_NAME:=${1:-}}
: ${TEST_COMMAND:="${ESH:-esh} $TEST_NAME.in"}

if [ -z "$TEST_NAME" ]; then
	echo "Usage: $0 TEST_NAME" >&2; exit 1
fi
if [ ! -f "$TEST_NAME.exp" ] && [ ! -f "$TEST_NAME.exp2" ]; then
	echo "Neither $TEST_NAME.exp nor $TEST_NAME.exp2 exists" >&2; exit 1
fi

diff_status=0
esh_status=0

$TEST_COMMAND > "$TEST_NAME.err" 2> "$TEST_NAME.err2" || esh_status=$?

if [ -f "$TEST_NAME.exp" ]; then
	_diff "$TEST_NAME.exp" "$TEST_NAME.err" || diff_status=$?
fi
if [ -f "$TEST_NAME.exp2" ] || [ "$esh_status" -ne 0 ]; then
	exp2_file="$TEST_NAME.exp2"
	test -f "$exp2_file" || exp2_file='no-error.exp2'

	echo "%exit-status: $esh_status" >> "$TEST_NAME.err2"
	_diff "$exp2_file" "$TEST_NAME.err2" >&2 || diff_status=$?
fi

exit $diff_status