summaryrefslogtreecommitdiff
path: root/Userland/Shell/Tests/subshell.sh
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Shell/Tests/subshell.sh')
-rw-r--r--Userland/Shell/Tests/subshell.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/Userland/Shell/Tests/subshell.sh b/Userland/Shell/Tests/subshell.sh
new file mode 100644
index 0000000000..ac8331a7de
--- /dev/null
+++ b/Userland/Shell/Tests/subshell.sh
@@ -0,0 +1,28 @@
+#/bin/sh
+
+setopt --verbose
+
+rm -rf shell-test
+mkdir shell-test
+cd shell-test
+
+ # Simple sequence (grouping)
+ { echo test > testfile }
+ test "$(cat testfile)" = "test" || echo cannot write to file in subshell && exit 1
+
+ # Simple sequence - many commands
+ { echo test1 > testfile; echo test2 > testfile }
+ test "$(cat testfile)" = "test2" || echo cannot write to file in subshell 2 && exit 1
+
+
+ # Does it exit with the last exit code?
+ { test -z "a" }
+ exitcode=$?
+ test "$exitcode" -eq 1 || echo exits with $exitcode when it should exit with 1 && exit 1
+
+ { test -z "a" || echo test }
+ exitcode=$?
+ test "$exitcode" -eq 0 || echo exits with $exitcode when it should exit with 0 && exit 1
+
+cd ..
+rm -rf shell-test