aboutsummaryrefslogtreecommitdiff
path: root/tests/test/script/builtin/touch.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test/script/builtin/touch.testscript')
-rw-r--r--tests/test/script/builtin/touch.testscript88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/test/script/builtin/touch.testscript b/tests/test/script/builtin/touch.testscript
new file mode 100644
index 0000000..d58ed7f
--- /dev/null
+++ b/tests/test/script/builtin/touch.testscript
@@ -0,0 +1,88 @@
+# file : tests/test/script/builtin/touch.testscript
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include ../common.testscript
+
+: file
+:
+$c <'touch a' && $b
+
+: file-create
+:
+: Test that file is created. If it didn't then 'rm' would fail.
+:
+$c <<EOI && $b
+touch a &!a;
+rm a
+EOI
+
+: file-update
+:
+: Test that existing file touch doesn't fail.
+:
+$c <<EOI && $b
+cat <'' >=a;
+touch a
+EOI
+
+: no-cleanup
+:
+: Test that touching an existing file does not register cleanup. If it does
+: then the file would be removed while leaving the embedded scope, and so the
+: cleanup registered by the first touch would fail.
+:
+$c <<EOI && $b
+{
+ +touch a
+ {
+ touch ../a
+ }
+}
+EOI
+
+: no-args
+:
+: Test passing no arguments.
+:
+$c <'touch --no-cleanup 2>"touch: missing file" != 0' && $b
+
+: empty-path
+:
+: Test touching an empty path.
+:
+$c <<EOI && $b
+touch '' 2>"touch: invalid path ''" != 0
+EOI
+
+: dir-update
+:
+: Test touching an existing directory.
+:
+$c <<EOI && $b
+mkdir a;
+touch a 2>~'%touch: cannot create/update .+: .+%' != 0
+EOI
+
+: after
+:
+{
+ : success
+ :
+ $c <<EOI && $b
+ touch a;
+ touch --after a b
+ EOI
+
+ : no-value
+ :
+ $c <<EOI && $b
+ touch --after 2>'touch: missing --after option value' != 0
+ EOI
+
+ : not-exists
+ :
+ $c <<EOI && $b
+ touch --after a b 2>~"%touch: cannot obtain file '.+a' modification time: .+%" != 0
+ EOI
+}