← Commit list

3ed7e2749

Denys Vlasenko
Denys Vlasenko
2016-10-01
SUCCESS Duration: 197s

Subject

ash testsuite: add return_in_trap1.tests

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
shell/hush_test/hush-signals/return_in_trap1.right+4 -0
@@ -0,0 +1,4 @@
+a:2
+b:0
+Trap
+d:3
shell/hush_test/hush-signals/return_in_trap1.tests+18 -0
@@ -0,0 +1,18 @@
+a() {
+ (exit 2)
+ echo a:$?
+ (kill -s USR1 $$; echo b:$?; exit 3)
+ echo c:$? # does not execute
+ (exit 4)
+}
+
+trap "echo Trap; return" USR1
+a
+
+echo d:$?
+# It's debatable what is the correct value above.
+# Does 'return' in trap sees $? == 2 or $? == 3?
+# IOW: after (kill..), does shell first wait for its completion
+# and sets $?, then checks pending signals and runs a trap handler,
+# or does it first checks pending signals and runs handler?
+# hush does the former, and prints 3.
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0
?+0 -0