From a7efabf301f23364ac2335c80c5e1e712bc43204 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 10 Nov 2016 00:26:54 +0300 Subject: Add cat, false and true builtins --- tests/test/script/builtin/buildfile | 5 ++++ tests/test/script/builtin/cat.test | 57 ++++++++++++++++++++++++++++++++++++ tests/test/script/builtin/echo.test | 11 +++++++ tests/test/script/builtin/mkdir.test | 50 +++++++++++++++++++++++++++++++ tests/test/script/builtin/touch.test | 45 ++++++++++++++++++++++++++++ 5 files changed, 168 insertions(+) create mode 100644 tests/test/script/builtin/buildfile create mode 100644 tests/test/script/builtin/cat.test create mode 100644 tests/test/script/builtin/echo.test create mode 100644 tests/test/script/builtin/mkdir.test create mode 100644 tests/test/script/builtin/touch.test (limited to 'tests/test/script/builtin') diff --git a/tests/test/script/builtin/buildfile b/tests/test/script/builtin/buildfile new file mode 100644 index 0000000..baa4996 --- /dev/null +++ b/tests/test/script/builtin/buildfile @@ -0,0 +1,5 @@ +# file : tests/test/script/builtin/buildfile +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +./: test{cat echo mkdir touch} diff --git a/tests/test/script/builtin/cat.test b/tests/test/script/builtin/cat.test new file mode 100644 index 0000000..7797906 --- /dev/null +++ b/tests/test/script/builtin/cat.test @@ -0,0 +1,57 @@ +# file : tests/test/script/runner/cat.test +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +: in +: +cat <>EOO +foo +bar +EOI +foo +bar +EOO + +: dash +: +cat - <>EOO +foo +bar +EOI +foo +bar +EOO + +: file +: +cat <>>out; +foo +bar +EOI +cat out >>EOO +foo +bar +EOO + +: in-repeat +: +cat - <>EOO +foo +bar +EOI +foo +bar +EOO + +: non-existent +: +cat in 2>- != 0 # @@ REGEX + +: empty-path +: +: Cat an empty path. +: +cat '' 2>"cat: invalid path ''" == 1 + +# @@ When piping is ready test cat on a big file to test it is asynchronous. +# diff --git a/tests/test/script/builtin/echo.test b/tests/test/script/builtin/echo.test new file mode 100644 index 0000000..7f43aac --- /dev/null +++ b/tests/test/script/builtin/echo.test @@ -0,0 +1,11 @@ +# file : tests/test/script/runner/echo.test +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +: string +: +echo foo >foo + +: strings +: +echo foo bar >"foo bar" diff --git a/tests/test/script/builtin/mkdir.test b/tests/test/script/builtin/mkdir.test new file mode 100644 index 0000000..6b7b5c9 --- /dev/null +++ b/tests/test/script/builtin/mkdir.test @@ -0,0 +1,50 @@ +# file : tests/test/script/runner/mkdir.test +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +: dirs +: +mkdir a b; +touch a/a b/b + +: parent +: +mkdir -p a/b; +touch a/a a/b/b + +: exists +: +mkdir -p a a a/b a/b + +: double-dash +: +: Make sure '-p' directory is created. +: +mkdir -p -- -p; +touch -p/a + +: no-args +: +: Test passing no arguments. +: +mkdir 2>"mkdir: missing directory" == 1 + +: empty-path +: +: Test creation of empty directory path. +: +mkdir '' 2>"mkdir: invalid path ''" == 1 + +: already-exists +: +: Test creation of an existing directory. Note that error message is +: platform-dependent so is not checked. +: +mkdir a 2>- a == 1 # @@ REGEX + +: not-exists +: +: Test creation of a directory with non-existent parent. Note that error +: message is platform-dependent so is not checked. +: +mkdir a/b 2>- == 1 # @@ REGEX diff --git a/tests/test/script/builtin/touch.test b/tests/test/script/builtin/touch.test new file mode 100644 index 0000000..4d2ff57 --- /dev/null +++ b/tests/test/script/builtin/touch.test @@ -0,0 +1,45 @@ +# file : tests/test/script/runner/touch.test +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +: file +: +touch a + +: file-create +: +: Test that file is created. If it didn't then 'rm' would fail. +: +touch a &!a; +rm a + +: file-update +: +: Test that existing file touch doesn't fail. +: +cat <"" >>>a; +touch a + +# @@ How we can test that touch of an existing file doesn't register a cleanup? +# + +: no-args +: +: Test passing no arguments. +: +touch 2>"touch: missing file" == 1 + +: empty-path +: +: Test touching an empty path. +: +touch '' 2>"touch: invalid path ''" == 1 + +: dir-update +: +: Test touching an existing directory. +: +a = [path] $~; +a += "a"; +mkdir a; +touch 2>"touch: '$a' exists and is not a file" a == 1 -- cgit v1.1