1262395Sbapt#!/bin/sh
2262395Sbapt
3262395Sbaptif [ $# -lt 1 ] ; then
4262395Sbapt	echo 'Specify binary to run as the first argument'
5262395Sbapt	exit 1
6262395Sbaptfi
7262395Sbapt
8262395Sbapt
9262395Sbaptfor _tin in ${TEST_DIR}/*.in ; do
10262395Sbapt	_t=`echo $_tin | sed -e 's/.in$//'`
11262395Sbapt	$1 $_t.in $_t.out
12262395Sbapt	if [ $? -ne 0 ] ; then
13262395Sbapt		echo "Test: $_t failed, output:"
14262395Sbapt		cat $_t.out
15262395Sbapt		rm $_t.out
16262395Sbapt		exit 1
17262395Sbapt	fi
18262395Sbapt	if [ -f $_t.res ] ; then
19262395Sbapt	diff -s $_t.out $_t.res -u 2>/dev/null
20262395Sbapt		if [ $? -ne 0 ] ; then
21262395Sbapt			rm $_t.out
22262395Sbapt			echo "Test: $_t output missmatch"
23262395Sbapt			exit 1
24262395Sbapt		fi
25262395Sbapt	fi
26262395Sbapt	rm $_t.out
27262395Sbaptdone
28262395Sbapt
29262395Sbaptif [ $# -gt 2 ] ; then
30262395Sbapt	$3 ${TEST_DIR}/generate.out
31262395Sbapt	diff -s ${TEST_DIR}/generate.out ${TEST_DIR}/generate.res -u 2>/dev/null
32262395Sbapt	if [ $? -ne 0 ] ; then
33262395Sbapt		rm ${TEST_DIR}/generate.out
34262395Sbapt		echo "Test: generate.res output missmatch"
35262395Sbapt    	exit 1
36262395Sbapt	fi
37262395Sbapt	rm ${TEST_DIR}/generate.out
38262395Sbaptfi
39262395Sbapt
40263648Sbaptif [ $# -gt 3 ] ; then
41263648Sbapt	rm /tmp/_ucl_test_schema.out ||true
42263648Sbapt	for i in ${TEST_DIR}/schema/*.json ; do
43263648Sbapt		_name=`basename $i`
44263648Sbapt		printf "running schema test suite $_name... "
45263648Sbapt		cat $i | $4 >> /tmp/_ucl_test_schema.out && ( echo "OK" ) || ( echo "Fail" )
46263648Sbapt	done
47263648Sbaptfi
48263648Sbapt
49262395Sbaptsh -c "xz -c < /dev/null > /dev/null"
50262395Sbaptif [ $? -eq 0 -a $# -gt 1 ] ; then
51262395Sbapt	echo 'Running speed tests'
52262395Sbapt	for _tin in ${TEST_DIR}/*.xz ; do
53262395Sbapt		echo "Unpacking $_tin..."
54262395Sbapt		xz -cd < $_tin > ${TEST_DIR}/test_file
55262395Sbapt		# Preread file to cheat benchmark!
56262395Sbapt		cat ${TEST_DIR}/test_file > /dev/null
57262395Sbapt		echo "Starting benchmarking for $_tin..."
58262395Sbapt		$2 ${TEST_DIR}/test_file
59262395Sbapt		if [ $? -ne 0 ] ; then
60262395Sbapt			echo "Test: $_tin failed"
61262395Sbapt			rm ${TEST_DIR}/test_file
62262395Sbapt			exit 1
63262395Sbapt		fi
64262395Sbapt		rm ${TEST_DIR}/test_file
65262395Sbapt	done
66262395Sbaptfi
67262395Sbapt
68