aboutsummaryrefslogtreecommitdiff
path: root/tests/builtin/cat.testscript
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2019-09-06 22:20:46 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2019-09-27 17:08:05 +0300
commit1c6758009e82c47b5b341d418be2be401ef31482 (patch)
treed3ef8c053280477086f6230e3d25ff90b25871a2 /tests/builtin/cat.testscript
parent070871d97b4f6440c3f0fc647ece73b53a5837db (diff)
Add builtins support
Diffstat (limited to 'tests/builtin/cat.testscript')
-rw-r--r--tests/builtin/cat.testscript82
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/builtin/cat.testscript b/tests/builtin/cat.testscript
new file mode 100644
index 0000000..336bb03
--- /dev/null
+++ b/tests/builtin/cat.testscript
@@ -0,0 +1,82 @@
+# file : tests/builtin/cat.testscript
+# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+test.arguments = "cat"
+
+: unknown-option
+:
+$* -u 2>"cat: unknown option '-u'" == 1
+
+: in
+:
+$* <<EOF >>EOF
+ foo
+ bar
+ EOF
+
+: dash
+:
+$* - <<EOF >>EOF
+ foo
+ bar
+ EOF
+
+: file
+:
+{
+ $* <<EOF >=out;
+ foo
+ bar
+ EOF
+
+ cat out >>EOO
+ foo
+ bar
+ EOO
+}
+
+: in-repeat
+:
+$* - - <<EOF >>EOF
+ foo
+ bar
+ EOF
+
+: non-existent
+:
+$* in 2>>/~%EOE% != 0
+ %cat: unable to print '.+/in': .+%
+ EOE
+
+: empty-path
+:
+: Cat an empty path.
+:
+$* '' 2>"cat: invalid path ''" == 1
+
+: big
+:
+: Cat a big file (about 100K) to test that the builtin is asynchronous.
+:
+{
+ s="--------------------------------";
+ s="$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s";
+ s="$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s";
+ s="$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s$s";
+ $* <"$s" | $* >"$s"
+}
+
+: cwd
+:
+: When cross-testing we cannot guarantee that host absolute paths are
+: recognized by the target process.
+:
+if ($test.target == $build.host)
+{
+ test.options += -d $~/a;
+ mkdir a;
+ echo 'foo' >=a/b;
+
+ $* b >'foo'
+}