aboutsummaryrefslogtreecommitdiff
path: root/shell/ash_test
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2020-02-14 17:27:18 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2020-02-16 19:14:45 +0100
commit4ccddc8fb37b7f585c2d62f6e61ad17295399aff (patch)
tree5a7b60334c1be7f7d32ca7d589b4171fc1eea28a /shell/ash_test
parentf7eea8c235dea6699a21c7b26c218e6c0dc1bf95 (diff)
downloadbusybox-4ccddc8fb37b7f585c2d62f6e61ad17295399aff.tar.gz
ash: [BUILTIN] Exit without arguments in a trap should use status outside traps
Upstream commit: Date: Mon Oct 6 10:39:47 2014 +0800 [BUILTIN] Exit without arguments in a trap should use status outside traps POSIX now requires that exit without arguments in a trap should return the last command status prior to executing traps. This patch implements this behaviour. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test')
-rw-r--r--shell/ash_test/ash-misc/exitcode_trap1.right2
-rwxr-xr-xshell/ash_test/ash-misc/exitcode_trap1.tests6
2 files changed, 8 insertions, 0 deletions
diff --git a/shell/ash_test/ash-misc/exitcode_trap1.right b/shell/ash_test/ash-misc/exitcode_trap1.right
new file mode 100644
index 000000000..5f76f68da
--- /dev/null
+++ b/shell/ash_test/ash-misc/exitcode_trap1.right
@@ -0,0 +1,2 @@
+Trapped
+One:1
diff --git a/shell/ash_test/ash-misc/exitcode_trap1.tests b/shell/ash_test/ash-misc/exitcode_trap1.tests
new file mode 100755
index 000000000..c35b6b391
--- /dev/null
+++ b/shell/ash_test/ash-misc/exitcode_trap1.tests
@@ -0,0 +1,6 @@
+# "exit" in trap should not use last command's exitcode,
+# but exitcode on entering the trap.
+(trap "echo Trapped; exit" EXIT
+ (exit 1)
+)
+echo One:$?