diff options
Diffstat (limited to 'tests/test')
-rw-r--r-- | tests/test/script/runner/buildfile | 2 | ||||
-rw-r--r-- | tests/test/script/runner/output.test | 87 |
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 +} |