aboutsummaryrefslogtreecommitdiff
path: root/tests/test/script/builtin/cat.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test/script/builtin/cat.testscript')
-rw-r--r--tests/test/script/builtin/cat.testscript84
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/test/script/builtin/cat.testscript b/tests/test/script/builtin/cat.testscript
new file mode 100644
index 0000000..b72edb4
--- /dev/null
+++ b/tests/test/script/builtin/cat.testscript
@@ -0,0 +1,84 @@
+# file : tests/test/script/builtin/cat.testscript
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include ../common.testscript
+
+: in
+:
+$c <<EOI && $b
+cat <<EOF >>EOO
+foo
+bar
+EOF
+foo
+bar
+EOO
+EOI
+
+: dash
+:
+$c <<EOI && $b
+cat - <<EOF >>EOO
+foo
+bar
+EOF
+foo
+bar
+EOO
+EOI
+
+: file
+:
+$c <<EOI && $b
+cat <<EOF >=out;
+foo
+bar
+EOF
+cat out >>EOO
+foo
+bar
+EOO
+EOI
+
+: in-repeat
+:
+$c <<EOI && $b
+cat - <<EOF >>EOO
+foo
+bar
+EOF
+foo
+bar
+EOO
+EOI
+
+: non-existent
+:
+$c <<EOI && $b
+cat in 2>>/~%EOE% != 0
+%cat: unable to print '.+/test/cat/non-existent/test/1/in': .+%
+EOE
+EOI
+
+: empty-path
+:
+: Cat an empty path.
+:
+$c <<EOI && $b
+cat '' 2>"cat: invalid path ''" == 1
+EOI
+
+: big
+:
+: Cat a big file (about 100K) to test that the builtin is asynchronous.
+:
+{
+ $c <<EOI && $b
+ 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"
+ cat <"$s" | cat >"$s"
+ EOI
+}