#!/bin/bash

TEST_FILE=${1##*/}
TEST_NAME=${TEST_FILE%.*}

if [ -z "$TEST_NAME" ]; then
	echo "usage: $(basename $0) <test name>"
	exit 1;
fi

WESTON=$abs_builddir/weston
LOGDIR=$abs_builddir/logs

mkdir -p "$LOGDIR" || exit

SERVERLOG="$LOGDIR/${TEST_NAME}-serverlog.txt"
OUTLOG="$LOGDIR/${TEST_NAME}-log.txt"

rm -f "$SERVERLOG" || exit

BACKEND=${BACKEND:-headless-backend.so}

MODDIR=$abs_builddir/.libs

SHELL_PLUGIN=$MODDIR/desktop-shell.so
TEST_PLUGIN=$MODDIR/weston-test.so

CONFIG_FILE="${TEST_NAME}.ini"

if [ -e "${abs_builddir}/${CONFIG_FILE}" ]; then
       CONFIG="--config=${abs_builddir}/${CONFIG_FILE}"
elif [ -e "${abs_top_srcdir}/tests/${CONFIG_FILE}" ]; then
       CONFIG="--config=${abs_top_srcdir}/tests/${CONFIG_FILE}"
else
       CONFIG="--no-config"
fi

case $TEST_FILE in
	ivi-*.la|ivi-*.so)
		SHELL_PLUGIN=$MODDIR/ivi-shell.so

		set -x
		WESTON_DATA_DIR=$abs_top_srcdir/data \
		WESTON_BUILD_DIR=$abs_builddir \
		WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference \
		$WESTON --backend=$MODDIR/$BACKEND \
			--no-config \
			--shell=$SHELL_PLUGIN \
			--socket=test-${TEST_NAME} \
			--modules=$TEST_PLUGIN,$MODDIR/${TEST_FILE/.la/.so}\
			--log="$SERVERLOG" \
			&> "$OUTLOG"
		;;
	*.la|*.so)
		set -x
		WESTON_DATA_DIR=$abs_top_srcdir/data \
		WESTON_BUILD_DIR=$abs_builddir \
		WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference \
		$WESTON --backend=$MODDIR/$BACKEND \
			${CONFIG} \
			--shell=$SHELL_PLUGIN \
			--socket=test-${TEST_NAME} \
			--xwayland \
			--modules=$MODDIR/${TEST_FILE/.la/.so} \
			--log="$SERVERLOG" \
			&> "$OUTLOG"
		;;
	ivi-*.weston)
		SHELL_PLUGIN=$MODDIR/ivi-shell.so

		set -x
		WESTON_DATA_DIR=$abs_top_srcdir/data \
		WESTON_BUILD_DIR=$abs_builddir \
		WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference \
		WESTON_TEST_CLIENT_PATH=$abs_builddir/$TEST_FILE \
		$WESTON --backend=$MODDIR/$BACKEND \
			--no-config \
			--shell=$SHELL_PLUGIN \
			--socket=test-${TEST_NAME} \
			--modules=$TEST_PLUGIN \
			--log="$SERVERLOG" \
			$($abs_builddir/$TESTNAME --params) \
			&> "$OUTLOG"
		;;
	*)
		set -x
		WESTON_DATA_DIR=$abs_top_srcdir/data \
		WESTON_BUILD_DIR=$abs_builddir \
		WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference \
		WESTON_TEST_CLIENT_PATH=$abs_builddir/$TEST_FILE \
		$WESTON --backend=$MODDIR/$BACKEND \
			${CONFIG} \
			--shell=$SHELL_PLUGIN \
			--socket=test-${TEST_NAME} \
			--xwayland \
			--modules=$TEST_PLUGIN \
			--log="$SERVERLOG" \
			$($abs_builddir/$TEST_FILE --params) \
			&> "$OUTLOG"
esac
