From 8d2191c6aedf60c29dc0a6ee8c452fee7e460ee7 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Mon, 24 Jul 2017 19:42:46 +0200
Subject: ash: copy three tests from hush_test/hush-signals/*

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 shell/ash_test/ash-signals/catch.right        |  5 +++++
 shell/ash_test/ash-signals/catch.tests        | 20 ++++++++++++++++++++
 shell/ash_test/ash-signals/signal_read2.right |  2 ++
 shell/ash_test/ash-signals/signal_read2.tests |  7 +++++++
 shell/ash_test/ash-signals/subshell.right     | 21 +++++++++++++++++++++
 shell/ash_test/ash-signals/subshell.tests     | 19 +++++++++++++++++++
 6 files changed, 74 insertions(+)
 create mode 100644 shell/ash_test/ash-signals/catch.right
 create mode 100755 shell/ash_test/ash-signals/catch.tests
 create mode 100644 shell/ash_test/ash-signals/signal_read2.right
 create mode 100755 shell/ash_test/ash-signals/signal_read2.tests
 create mode 100644 shell/ash_test/ash-signals/subshell.right
 create mode 100755 shell/ash_test/ash-signals/subshell.tests

(limited to 'shell')

diff --git a/shell/ash_test/ash-signals/catch.right b/shell/ash_test/ash-signals/catch.right
new file mode 100644
index 000000000..68530c6e7
--- /dev/null
+++ b/shell/ash_test/ash-signals/catch.right
@@ -0,0 +1,5 @@
+sending USR2
+caught
+sending USR2
+sending USR2
+User defined signal 2
diff --git a/shell/ash_test/ash-signals/catch.tests b/shell/ash_test/ash-signals/catch.tests
new file mode 100755
index 000000000..d2a21d17e
--- /dev/null
+++ b/shell/ash_test/ash-signals/catch.tests
@@ -0,0 +1,20 @@
+# avoid ugly warnings about signals not being caught
+trap ":" USR1 USR2
+
+"$THIS_SH" -c '
+trap "echo caught" USR2
+echo "sending USR2"
+kill -USR2 $$
+
+trap "" USR2
+echo "sending USR2"
+kill -USR2 $$
+
+trap "-" USR2
+echo "sending USR2"
+kill -USR2 $$
+
+echo "not reached"
+'
+
+trap "-" USR1 USR2
diff --git a/shell/ash_test/ash-signals/signal_read2.right b/shell/ash_test/ash-signals/signal_read2.right
new file mode 100644
index 000000000..87d8da304
--- /dev/null
+++ b/shell/ash_test/ash-signals/signal_read2.right
@@ -0,0 +1,2 @@
+Hangup
+Done:129
diff --git a/shell/ash_test/ash-signals/signal_read2.tests b/shell/ash_test/ash-signals/signal_read2.tests
new file mode 100755
index 000000000..eab5b9b5b
--- /dev/null
+++ b/shell/ash_test/ash-signals/signal_read2.tests
@@ -0,0 +1,7 @@
+$THIS_SH -c '
+(sleep 1; kill -HUP $$) &
+while true; do
+	read ignored
+done
+'
+echo "Done:$?"
diff --git a/shell/ash_test/ash-signals/subshell.right b/shell/ash_test/ash-signals/subshell.right
new file mode 100644
index 000000000..248fcc41a
--- /dev/null
+++ b/shell/ash_test/ash-signals/subshell.right
@@ -0,0 +1,21 @@
+trap -- '' HUP
+trap -- '' QUIT
+trap -- '' SYS
+Ok
+trap -- '' HUP
+trap -- '' QUIT
+trap -- '' SYS
+Ok
+trap -- '' HUP
+trap -- '' QUIT
+trap -- '' SYS
+Ok
+trap -- '' HUP
+trap -- '' QUIT
+trap -- '' SYS
+Ok
+trap -- '' HUP
+trap -- '' QUIT
+trap -- '' SYS
+Terminated
+Done
diff --git a/shell/ash_test/ash-signals/subshell.tests b/shell/ash_test/ash-signals/subshell.tests
new file mode 100755
index 000000000..d877f2b82
--- /dev/null
+++ b/shell/ash_test/ash-signals/subshell.tests
@@ -0,0 +1,19 @@
+# Non-empty traps should be reset in subshell
+
+# HUP is special in interactive shells
+trap '' HUP
+# QUIT is always special
+trap '' QUIT
+# SYS is not special
+trap '' SYS
+# WINCH is harmless
+trap 'bad: caught WINCH' WINCH
+# With TERM we'll check whether it is reset
+trap 'bad: caught TERM'  TERM
+
+(trap; "$THIS_SH" -c 'kill -HUP   $PPID'; echo Ok)
+(trap; "$THIS_SH" -c 'kill -QUIT  $PPID'; echo Ok)
+(trap; "$THIS_SH" -c 'kill -SYS   $PPID'; echo Ok)
+(trap; "$THIS_SH" -c 'kill -WINCH $PPID'; echo Ok)
+(trap; "$THIS_SH" -c 'kill -TERM  $PPID'; echo Bad: TERM is not reset)
+echo Done
-- 
cgit v1.2.3-55-g6feb