aboutsummaryrefslogtreecommitdiffstats
path: root/test/close_status.awk
diff options
context:
space:
mode:
Diffstat (limited to 'test/close_status.awk')
-rw-r--r--test/close_status.awk20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/close_status.awk b/test/close_status.awk
new file mode 100644
index 00000000..12b48d63
--- /dev/null
+++ b/test/close_status.awk
@@ -0,0 +1,20 @@
+BEGIN {
+ exit9 = "echo red; exit 9"
+ while ((exit9 | getline x) > 0)
+ print x
+ printf "close(%s) returned %s\n", exit9, close(exit9)
+
+ # run it again, but don't reap the exit status
+ while ((exit9 | getline x) > 0)
+ print x
+
+ exit0 = "echo blue; exit 0"
+ while ((exit0 | getline x) > 0)
+ print x
+ # reap status out of order
+ printf "close(%s) returned %s\n", exit0, close(exit0)
+
+ # check that we got the correct status from the previously
+ # exited process
+ printf "close(%s) returned %s\n", exit9, close(exit9)
+}