diff options
author | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2014-10-26 19:04:47 +0000 |
---|---|---|
committer | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2014-10-26 19:04:47 +0000 |
commit | 9a551ca85999ff329714fd2cca138ce2f7d3c3d9 (patch) | |
tree | d51276834fd385725b41064f631500b05f10de82 | |
parent | b4f7ccecd93ca9e64c3c3c774fdaefae83d7204a (diff) | |
download | zsh-9a551ca85999ff329714fd2cca138ce2f7d3c3d9.tar.gz zsh-9a551ca85999ff329714fd2cca138ce2f7d3c3d9.tar.xz zsh-9a551ca85999ff329714fd2cca138ce2f7d3c3d9.zip |
33542: test logic for waiting for already exited processes
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | Test/A05execution.ztst | 29 |
2 files changed, 29 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index c75b870de..3fbc9d7d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2014-10-26 Peter Stephenson <p.w.stephenson@ntlworld.com> + * 33542: Test/A05execution.ztst: test previous patch. + * 33531 (plus fix to test job pointer and removing lastpid_status): Doc/Zsh/builtins.yo, Doc/Zsh/options.yo, Src/exec.c, Src/init.c, Src/jobs.c, Src/linklist.c, diff --git a/Test/A05execution.ztst b/Test/A05execution.ztst index ca97f4f41..589815f7c 100644 --- a/Test/A05execution.ztst +++ b/Test/A05execution.ztst @@ -190,9 +190,9 @@ print "${pipestatus[@]}") ZTST_hashmark done | sort | uniq -c | sed 's/^ *//' -0:Check whether `$pipestatus[]' behaves. +0:Check whether '$pipestatus[]' behaves. >2048 2 1 0 -F:This test checks for a bug in `$pipestatus[]' handling. If it breaks then +F:This test checks for a bug in '$pipestatus[]' handling. If it breaks then F:the bug is still there or it reappeared. See workers-29973 for details. { setopt MONITOR } 2>/dev/null @@ -244,3 +244,28 @@ F:anonymous function, and a descriptor leak when backgrounding a pipeline >autoload_redir () { > print Autoloaded ksh style >} > autoload.log + +# This tests that we record the status of processes that have already exited +# for when we wait for them. +# +# Actually, we don't guarantee here that the jobs have already exited, but +# the order of the waits means it's highly likely we do need to recall a +# previous status, barring accidents which shouldn't happen very often. In +# other words, we rely on the test working repeatedly rather than just +# once. The monitor option is irrelevant to the logic, so we'll make +# our job easier by turning it off. + unsetopt monitor + (exit 1) & + one=$! + (exit 2) & + two=$! + (exit 3) & + three=$! + wait $three + print $? + wait $two + print $? + wait $one +1:The status of recently exited background jobs is recorded +>3 +>2 |