aboutsummaryrefslogtreecommitdiff
path: root/tests/test/script/common.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test/script/common.testscript')
-rw-r--r--tests/test/script/common.testscript37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test/script/common.testscript b/tests/test/script/common.testscript
new file mode 100644
index 0000000..b509818
--- /dev/null
+++ b/tests/test/script/common.testscript
@@ -0,0 +1,37 @@
+# file : tests/test/script/common.testscript
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# Commonly-used build system test project setup and driver command line
+# (test module using testscript tests).
+#
+
++mkdir build
++cat <<"EOI" >=build/bootstrap.build
+project = test
+amalgamation =
+
+using test
+EOI
+
+# We assume the specified target if any is in out_base which would be two
+# levels up from our working directory.
+#
++if! $empty($target)
+ cat <<"EOI" >=build/root.build
+ target = \$src_root/../../$string([name] $target)
+ testscript{*}: test = \$target
+ EOI
+end
+
+# The "cat & build" setup: first cat ($c) the testscript, then run build ($b)
+# which will execute the testscript. We have to quote stdin because of the
+# command line re-expansion.
+#
+# Note that the buildfile is clever hack that relies on the first target
+# automatically becoming dir{./}'s prerequisite.
+#
+c = cat >=testscript
+b = $0 --serial-stop --quiet --buildfile - test \
+<"'testscript{testscript}: \$target'" \
+&?test/***