From f8b5b2e42d7b605a85da9e04c79362b5d013bff9 Mon Sep 17 00:00:00 2001 From: div0 Date: Sat, 27 Feb 2010 17:32:04 +0000 Subject: [PATCH] test case framework git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8675 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server-testcase/framework.qc | 14 ++++++++ data/qcsrc/server-testcase/progs.src | 4 +++ data/qcsrc/server-testcase/run.sh | 43 +++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 data/qcsrc/server-testcase/framework.qc create mode 100644 data/qcsrc/server-testcase/progs.src create mode 100755 data/qcsrc/server-testcase/run.sh diff --git a/data/qcsrc/server-testcase/framework.qc b/data/qcsrc/server-testcase/framework.qc new file mode 100644 index 000000000..192984948 --- /dev/null +++ b/data/qcsrc/server-testcase/framework.qc @@ -0,0 +1,14 @@ +void error(string e) = #10; +float test(); + +void spawnfunc_worldspawn() +{ + float r; + r = test(); + if(r == 1) + error("TESTCASE: PASS"); + else if(r == 0) + error("TESTCASE: FAIL"); + else + error("TESTCASE: INVALID"); +} diff --git a/data/qcsrc/server-testcase/progs.src b/data/qcsrc/server-testcase/progs.src new file mode 100644 index 000000000..bd5c571f4 --- /dev/null +++ b/data/qcsrc/server-testcase/progs.src @@ -0,0 +1,4 @@ +../../progs-testcase.dat +../server/sys.qh +framework.qc +testcase.qc diff --git a/data/qcsrc/server-testcase/run.sh b/data/qcsrc/server-testcase/run.sh new file mode 100755 index 000000000..a6e212046 --- /dev/null +++ b/data/qcsrc/server-testcase/run.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +if [ "$#" -lt 3 ]; then + echo "Usage: $0 'float test() { if(fail) return 0; else if(good) return 1; else return -1; }' ./darkplaces-dedicated basement +sv_cheats 1" + exit 125 +fi + +case "$0" in + */*) + dir=${0%/*} + ;; + *) + dir=`pwd` + ;; +esac +testcase=$1; shift +engine=$1; shift +map=$1; shift +echo "$testcase" > "$dir/testcase.qc" +if ( cd $dir && fteqcc ); then + r=`"$engine" -nexuiz -basedir "$dir/../../.." +sv_progs progs-testcase.dat "$@" +map "$map" | tee /dev/stderr` + case "$r" in + *"TESTCASE: PASS"*) + echo "PASS detected" + exit 0 + ;; + *"TESTCASE: FAIL"*) + echo "FAIL detected" + exit 1 + ;; + *"TESTCASE: INVALID"*) + echo "INVALID detected" + exit 125 + ;; + *) + echo "Running failed" + exit 125 + ;; + esac +else + echo "Compilation failed" + exit 125 +fi -- 2.39.2