aboutsummaryrefslogtreecommitdiff
path: root/tests/test/script-integration
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test/script-integration')
-rw-r--r--tests/test/script-integration/buildfile8
-rw-r--r--tests/test/script-integration/testscript81
2 files changed, 89 insertions, 0 deletions
diff --git a/tests/test/script-integration/buildfile b/tests/test/script-integration/buildfile
new file mode 100644
index 0000000..4249e1f
--- /dev/null
+++ b/tests/test/script-integration/buildfile
@@ -0,0 +1,8 @@
+# file : tests/test/script-integration/buildfile
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# Test integration of testscript into build system.
+#
+
+./: test{testscript} $b
diff --git a/tests/test/script-integration/testscript b/tests/test/script-integration/testscript
new file mode 100644
index 0000000..914ff30
--- /dev/null
+++ b/tests/test/script-integration/testscript
@@ -0,0 +1,81 @@
+# file : tests/test/script-integration/testscript
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include ../common.test
+
+: script-files
+:
+{
+ +touch testscript foo.test bar.test
+
+ : testscript-and-other
+ :
+ $* <<EOI 2>>~%EOE% != 0
+ ./: test{../testscript ../foo}
+ EOI
+ %error: both 'testscript' and other names specified for dir\{\.[/\\]\}%
+ EOE
+
+ : other-and-testscript
+ :
+ $* <<EOI 2>>~%EOE% != 0
+ ./: test{../foo ../testscript}
+ EOI
+ %error: both 'testscript' and other names specified for dir\{\.[/\\]\}%
+ EOE
+
+ : others
+ :
+ $* <<EOI
+ ./: test{../foo ../bar}
+ EOI
+}
+
+: wd-is-file
+:
+touch foo.test;
+touch test;
+$* <<EOI 2>>~%EOE% != 0
+./: test{foo}
+EOI
+%error: working directory test[/\\] is a file/symlink%
+EOE
+
+: wd-exists-before
+:
+touch foo.test;
+mkdir test &!test/;
+$* <<EOI 2>>~%EOE%
+./: test{foo}
+EOI
+%warning: working directory test[/\\] exists at the beginning of the test%
+EOE
+
+: wd-not-empty-before
+:
+touch foo.test;
+mkdir test &!test/;
+touch test/dummy &!test/dummy;
+$* <<EOI 2>>~%EOE%
+./: test{foo}
+EOI
+%warning: working directory test[/\\] exists and is not empty at the beginning of the test%
+EOE
+
+: wd-not-empty-after
+:
+: The idea here is to run a nested testscript that creates (but does not
+: clean up) a file in our working directory. Note that an implicit cleanup
+: cancelation is not required as the file is out of the test root directory
+: scope. Also note that we still have to remove everything after detecting the
+: failure.
+:
+cat <<EOI >>>foo.test;
+touch ../../dummy
+EOI
+$* <<EOI 2>>~%EOE% &test/*** != 0
+./: test{foo}
+EOI
+%error: working directory test[/\\] is not empty at the end of the test%
+EOE