aboutsummaryrefslogtreecommitdiff
path: root/tests/test/script/integration
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-02-05 14:39:47 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-02-05 14:39:47 +0200
commit36ec90018e1a6337d23fc5286ed926c2134bde1f (patch)
tree40710bf9555076689d1ee7726ec3e29317dba00a /tests/test/script/integration
parent3954be70024fd60c20c658f08025eff7654a8943 (diff)
Add tests for auto-generated test inputs/outputs
Diffstat (limited to 'tests/test/script/integration')
-rw-r--r--tests/test/script/integration/buildfile8
-rw-r--r--tests/test/script/integration/testscript86
2 files changed, 94 insertions, 0 deletions
diff --git a/tests/test/script/integration/buildfile b/tests/test/script/integration/buildfile
new file mode 100644
index 0000000..1cc1e30
--- /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..7074e36
--- /dev/null
+++ b/tests/test/script/integration/testscript
@@ -0,0 +1,86 @@
+# file : tests/test/script/integration/testscript
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# Note: using common.test from test/, not script/.
+#
+.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
+:
+: Note that here we can not use portable path modifier as not all slashes are
+: path separators.
+:
+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