summaryrefslogtreecommitdiff
path: root/test/script
diff options
context:
space:
mode:
Diffstat (limited to 'test/script')
-rw-r--r--test/script/definition.et18
-rw-r--r--test/script/expansion.et15
-rw-r--r--test/script/parser.et13
-rw-r--r--test/script/run.et105
-rw-r--r--test/script/shell.et80
5 files changed, 231 insertions, 0 deletions
diff --git a/test/script/definition.et b/test/script/definition.et
new file mode 100644
index 0000000..d2da737
--- /dev/null
+++ b/test/script/definition.et
@@ -0,0 +1,18 @@
+module definition
+
+asset scripts:
+ path: ../asset/definition
+
+test Definition:
+ spawn as p
+ with p:
+ send "load ${scripts.path}/basic.et"
+ expect /load-done/
+
+ send "run Test"
+ expect /child-stdout p 4/
+ expect /match p 4/
+ expect /child-stdout p 11/
+ expect /match p 11/
+ expect /(.*)/ capture done
+ guard (done == "run-done")
diff --git a/test/script/expansion.et b/test/script/expansion.et
new file mode 100644
index 0000000..86a81dc
--- /dev/null
+++ b/test/script/expansion.et
@@ -0,0 +1,15 @@
+module expansion
+
+asset expansion:
+ path: ../asset/expansion.et
+
+test VariableExpansion:
+ spawn as p
+ with p:
+ send "load ${expansion.path}"
+ expect /load-done/
+ send "run VariableExpansion"
+ for str in [ "1", "1.3", "abc", "abc" ]:
+ expect /child-stdout p $str/
+ expect /match p $str/
+ expect /run-done/
diff --git a/test/script/parser.et b/test/script/parser.et
new file mode 100644
index 0000000..554e345
--- /dev/null
+++ b/test/script/parser.et
@@ -0,0 +1,13 @@
+module parser
+
+asset scripts:
+ path: ../asset/parser
+
+test Parser:
+ spawn as p
+ with p:
+ send "load non-existing-file.et"
+ expect /load-failed file-not-found .*/
+
+ send "load ${scripts.path}/indent.et"
+ expect /load-done/
diff --git a/test/script/run.et b/test/script/run.et
new file mode 100644
index 0000000..7cc1670
--- /dev/null
+++ b/test/script/run.et
@@ -0,0 +1,105 @@
+module run
+
+asset scripts:
+ path: ../asset/run
+
+asset scripts_success:
+ path: ../asset/run-success
+
+asset scripts_fail:
+ path: ../asset/run-fail
+
+
+test TrivialRun:
+ spawn as p
+ with p:
+ send "load ${scripts.path}/trivial.et"
+ expect /load-done/
+
+ send "run AlwaysSucceeds"
+ local:
+ expect /(run-.*)/ capture done
+ guard (done == "run-done")
+
+ send "run AlwaysFails"
+ local:
+ expect /match-fail .*/
+ expect /(run-.*)/ capture done
+ guard (done == "run-failed")
+
+
+test SimpleRun:
+ let should_succeed = [ "bool" ]
+ let should_fail = [ "bool" ]
+ spawn as p
+
+ with p:
+ for file in should_succeed:
+ send "load ${scripts_success.path}/$file.et"
+ local:
+ expect /(load-.*)/ capture done
+ guard (done == "load-done")
+ flush
+
+ send "run Test"
+ local:
+ expect /(run-.*)/ capture done
+ guard (done == "run-done")
+ flush
+
+ for file in should_fail:
+ send "load ${scripts_fail.path}/$file.et"
+ local:
+ expect /(load-.*)/ capture done
+ guard (done == "load-done")
+ flush
+
+ send "run Test"
+ local:
+ expect /(run-.*)/ capture done
+ guard (done == "run-failed")
+ flush
+
+
+test RunConfig:
+ node n
+ shell on n:
+ cp ${scripts.path}/erebos-tester.yaml .
+ mkdir tools
+ cp ${scripts.path}/tools/echo.sh ./tools/tool
+ mkdir scripts
+ # TODO: it seems that namespaces are not properly cleaned up after the failed test
+ #cp ${scripts.path}/trivial.et ./scripts/
+ cp ${scripts.path}/echo.et ./scripts/
+
+ spawn as p on n
+
+ with p:
+ send "load-config"
+ expect /load-config-done/
+ send "run-all"
+ #expect /run-test-result AlwaysSucceeds done/
+ #expect /run-test-result AlwaysFails failed/
+ expect /child-stdin p abcdef/
+ expect /child-stdout p abcdef/
+ expect /match p abcdef/
+ expect /run-test-result ExpectEcho done/
+ expect /run-all-done/
+
+
+test GetSysInfo:
+ node n
+ shell on n:
+ cp ${scripts.path}/erebos-tester.yaml .
+ mkdir tools
+ cp ${scripts.path}/tools/sysinfo.sh ./tools/tool
+ mkdir scripts
+ cp ${scripts.path}/sysinfo.et ./scripts/
+
+ spawn as p on n
+
+ with p:
+ send "load-config"
+ expect /load-config-done/
+ send "run SysInfo"
+ expect /run-done/
diff --git a/test/script/shell.et b/test/script/shell.et
new file mode 100644
index 0000000..2fe4ec3
--- /dev/null
+++ b/test/script/shell.et
@@ -0,0 +1,80 @@
+asset scripts:
+ path: ../asset/shell
+
+
+test ShellSpawn:
+ spawn as p
+ with p:
+ send "load ${scripts.path}/spawn.et"
+ local:
+ expect /(load-.*)/ capture done
+ guard (done == "load-done")
+ flush
+
+ send "run-all"
+ expect /run-test-result ShellTrue done/
+ expect /child-fail sh failed at: .*: false/
+ expect /child-fail sh exit code: 1/
+ expect /run-test-result ShellFalse failed/
+ expect /run-all-done/
+
+
+def expect_next_stdout from p (expected):
+ expect from p /child-stdout sh (.*)/ capture line
+ guard (line == expected)
+
+test ShellEcho:
+ spawn as p
+ with p:
+ send "load ${scripts.path}/echo.et"
+ local:
+ expect /(load-.*)/ capture done
+ guard (done == "load-done")
+ flush
+
+ send "run-all"
+
+ expect_next_stdout from p:
+ "a b c"
+ "a b c"
+ "a b d"
+ "a b c d"
+
+ "abcd xyz"
+ "aa bc d"
+ "b echo c"
+
+ "a b"
+ "a b"
+ "\$space_str"
+
+ "\$ \" \\"
+ "\"\"a"
+ "' \" \\\\\\ \\"
+ "a b c"
+
+ "\" ' \\ \$ # | > < ; [ ] { } ( ) * ? ~ & !"
+
+ with p:
+ expect /run-test-result Echo done/
+ expect /run-all-done/
+
+
+test ShellPipe:
+ spawn as p
+ with p:
+ send "load ${scripts.path}/pipe.et"
+ local:
+ expect /(load-.*)/ capture done
+ guard (done == "load-done")
+ flush
+
+ send "run-all"
+
+ expect_next_stdout from p:
+ "bc"
+ "b"
+
+ with p:
+ expect /run-test-result Pipe done/
+ expect /run-all-done/