#!/bin/sh

# default: execute all tests
TESTS="01_check_rig.sh 02_flash_dfu.sh 03_check_lsusb.sh 04_check_dfu_lsusb.sh 05_flash_dfu_from_app.sh 06_test_simcards.sh"

# if command line specifies some specific tests, execute only those
if [ $# -ge 1 ]; then
	TESTS=$*
fi

TMP=`tempfile`
NUM_FAIL=0

# prepare test card
./prepare
if [ $? -eq 0 ]; then
	echo "Prepare done"
else
        echo "Prepare Test FAILED!"
	exit 2
fi

for T in $TESTS; do
	echo "==> Executing Testcase $T"
	EXPOUT=${T%%.sh}.out
	rm $TMP
	./$T > $TMP
	diff -u $EXPOUT $TMP
	if [ $? -eq 0 ]; then
		echo "Test $T passed"
	else
		echo "Test $T FAILED!"
		NUM_FAIL=$((NUM_FAIL+1))
	fi
done

echo
echo
echo "Summary: $NUM_FAIL Tests failed"

if [ $NUM_FAIL -gt 0 ]; then
	exit 1
else
	exit 0
fi
