aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/external/c-testsuite/single-exec
diff options
context:
space:
mode:
Diffstat (limited to 'test/external/c-testsuite/single-exec')
-rwxr-xr-xtest/external/c-testsuite/single-exec66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/external/c-testsuite/single-exec b/test/external/c-testsuite/single-exec
new file mode 100755
index 0000000..e6952d9
--- /dev/null
+++ b/test/external/c-testsuite/single-exec
@@ -0,0 +1,66 @@
+#! /bin/sh
+
+set -e
+set -u
+
+if ! test -f README.md
+then
+ echo "run from the base directory." >&2
+ exit 1
+fi
+
+compiler="$1"
+
+scratchdir=$(mktemp -d)
+cleanup () {
+ rm -rf $scratchdir
+}
+trap cleanup EXIT
+
+testdir="./tests/single-exec"
+runner="./runners/single-exec/$compiler"
+
+skipcmd="./runners/single-exec/$compiler.skip"
+skipset="$scratchdir/skip_lut"
+
+echo "TAP version 13"
+echo "1..$(find ./tests/single-exec/ -name "*.c" | wc -l)"
+
+if ! test -f "$runner"
+then
+ echo "$runner does not exist!" 1>&2
+ exit 1
+fi
+
+if test -f "$skipcmd"
+then
+ if ! $skipcmd > "$scratchdir/skip.txt"
+ then
+ echo "skip list command failed" 1>&2
+ exit 1
+ fi
+
+ ./scripts/lib-exec/mkset "$skipset" "$scratchdir/skip.txt"
+else
+ echo -n "" | ./scripts/lib-exec/mkset "$skipset"
+fi
+
+for t in $testdir/*.c
+do
+ result="ok"
+
+
+ if ./scripts/lib-exec/setlookup "$skipset" "$t"
+ then
+ echo "ok $t # SKIP"
+ continue
+ fi
+
+ if ! timeout 5m $runner $t > $scratchdir/t.out 2>&1
+ then
+ result="not ok"
+ fi
+
+ echo "$result" "$t"
+ sed -e 's/^/\#/' $scratchdir/t.out
+done