aboutsummaryrefslogtreecommitdiff
path: root/tests/test/script
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test/script')
-rw-r--r--tests/test/script/runner/buildfile2
-rw-r--r--tests/test/script/runner/output.test87
2 files changed, 88 insertions, 1 deletions
diff --git a/tests/test/script/runner/buildfile b/tests/test/script/runner/buildfile
index c3df228..a990405 100644
--- a/tests/test/script/runner/buildfile
+++ b/tests/test/script/runner/buildfile
@@ -2,7 +2,7 @@
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
-./: test{cleanup expr if pipe redirect regex set status} exe{driver} $b
+./: test{cleanup expr if output pipe redirect regex set status} exe{driver} $b
test{*}: target = exe{driver}
diff --git a/tests/test/script/runner/output.test b/tests/test/script/runner/output.test
new file mode 100644
index 0000000..f46b6ec
--- /dev/null
+++ b/tests/test/script/runner/output.test
@@ -0,0 +1,87 @@
+# file : tests/test/script/runner/output.test
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# Some of the tests below (*/script-wd, before/*) are probably more appropriate
+# for tests/test/script/script-integration/testscript. Nevertheless let's not
+# spread the feature tests among several places.
+#
+
+.include ../common.test
+
+: after
+:
+{
+ : keep
+ :
+ {
+ : cleanup
+ :
+ $c <'touch a' && $b config.test.output=keep;
+ test -f test/1/a
+
+ : teardown
+ :
+ $c <<EOI && $b config.test.output=keep;
+ +touch a &!a
+ -rm a
+ EOI
+ test -f test/a
+
+ : script-wd
+ :
+ : There is no working directory created for a empty script, so add a dummy
+ : assignment here.
+ :
+ $c <'a=b' && $b config.test.output=keep;
+ test -d test
+ }
+
+ : clean
+ :
+ {
+ : cleanup
+ :
+ $c <'touch a' && $b config.test.output=clean;
+ test -f test/1/a == 1
+
+ : teardown
+ :
+ $c <<EOI && $b config.test.output=clean;
+ +touch a &!a
+ -rm a
+ EOI
+ test -f test/a == 1
+
+ : script-wd
+ :
+ : There is no working directory created for a empty script, so add a dummy
+ : assignment here.
+ :
+ $c <'a=b' && $b config.test.output=clean;
+ test -d test == 1
+ }
+}
+
+: before
+:
+{
+ : fail
+ :
+ mkdir test &!test/;
+ $c <'true' && $b config.test.output=fail@clean 2>>/EOE != 0
+ error: working directory test/ exists at the beginning of the test
+ EOE
+
+ : warn
+ :
+ mkdir test &!test/;
+ $c <'true' && $b config.test.output=warn@clean 2>>/EOE
+ warning: working directory test/ exists at the beginning of the test
+ EOE
+
+ : clean
+ :
+ mkdir test &!test/;
+ $c <'true' && $b config.test.output=clean@clean
+}