#!/bin/bash

export ROOT=$(cd $(dirname ${BASH_SOURCE[0]})/..; pwd)
TMP=$ROOT/tmp
LOGS=$ROOT/logs
TESTS=$ROOT/tests
export SANDBOXOS=$ROOT/sandboxos

mkdir $TMP 2> /dev/null
mkdir $LOGS 2> /dev/null

REQUESTED_TESTS=$*
if [[ -z $REQUESTED_TESTS ]]; then
	REQUESTED_TESTS=$(ls $TESTS/* | xargs basename -a)
fi

for NAME in $REQUESTED_TESTS; do
	TEST=$TESTS/$NAME
	echo -n "$(basename $TEST) "
	rm -rf $TMP/*
	pushd $TMP > /dev/null
	export LOGDIR=$LOGS/$NAME
	mkdir $LOGDIR 2> /dev/null
	unbuffer $TEST > $LOGDIR/stdout.log 2> $LOGDIR/stderr.log
	RESULT=$?
	popd > /dev/null
	if [[ $RESULT != 0 ]]; then
		echo "FAILED (with exit code $RESULT)"
		exit $RESULT
	else
		echo "SUCCESS"
	fi
done

echo
echo "All tests completed successfully."