diff options
author | Jari Aalto <jari.aalto@cante.net> | 1997-06-05 14:59:13 +0000 |
---|---|---|
committer | Jari Aalto <jari.aalto@cante.net> | 2009-09-12 16:46:50 +0000 |
commit | d166f048818e10cf3799aa24a174fb22835f1acc (patch) | |
tree | 1ca27f9243900f8b236d0cde6a3862002aea9e19 /tests/jobs.tests | |
parent | ccc6cda312fea9f0468ee65b8f368e9653e1380b (diff) | |
download | android_external_bash-d166f048818e10cf3799aa24a174fb22835f1acc.tar.gz android_external_bash-d166f048818e10cf3799aa24a174fb22835f1acc.tar.bz2 android_external_bash-d166f048818e10cf3799aa24a174fb22835f1acc.zip |
Imported from ../bash-2.01.tar.gz.
Diffstat (limited to 'tests/jobs.tests')
-rw-r--r-- | tests/jobs.tests | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/tests/jobs.tests b/tests/jobs.tests new file mode 100644 index 0000000..cd044f1 --- /dev/null +++ b/tests/jobs.tests @@ -0,0 +1,145 @@ +jobs +echo $? + +echo wait-for-pid +sleep 10 & +wait $! + +echo wait-errors +wait 1-1 +wait -- -4 + +echo wait-for-background-pids +sleep 5 & +sleep 8 & +wait + +echo async list wait-for-background-pids +sleep 5 & sleep 8 & +wait + +echo async list wait for child +sleep 5 & echo forked +wait + +echo wait-when-no-children +wait + +set -m + +echo wait-for-job +sleep 5 & +wait %2 # this should be a no-such-job error +echo $? +wait %1 + +echo async list wait-for-job +sleep 5 & echo forked +wait %1 + +echo fg-bg 1 +sleep 5 & +%1 + +echo fg-bg 2 +sleep 5 & +fg %% + +echo fg-bg 3 +sleep 5 & +fg %s + +echo fg-bg 4 +sleep 5 & +fg %?ee + +# these next two are error cases +echo fg-bg 5 +sleep 15 & +fg %2 # this should be a no-such-job error +bg %1 # this should be a `bg background job?' error +wait + +# these may someday mean to start the jobs, but not print the line +# describing the status, but for now they are errors +echo fg-bg 6 +sleep 5 & +fg -s %1 +bg -s %1 +wait + +# someday this may mean to disown all running jobs, but for now it is +# an error +disown -r + +# this is an error +disown %1 + +echo wait-for-non-child +wait 1 +echo $? + +exit 1 | exit 2 | exit 3 +echo $? -- ${PIPESTATUS[@]} -- ${PIPESTATUS[0]} - ${PIPESTATUS[1]} - ${PIPESTATUS[2]} + +sleep 300 & +sleep 350 & +sleep 400 & + +jobs + +echo running jobs: +jobs -r + +# should be an error +kill -n 1 %4 + +kill -STOP %2 +sleep 5 # give time for the shell to get the stop notification +echo after kill -STOP +echo running jobs: +jobs -r +echo stopped jobs: +jobs -s + +disown %1 + +echo after disown +jobs +echo running jobs: +jobs -r +echo stopped jobs: +jobs -s + +kill -s CONT %2 +echo after kill -s CONT +echo running jobs: +jobs -r +echo stopped jobs: +jobs -s + +kill -STOP %3 +sleep 5 # give time for the shell to get the stop notification +echo after kill -STOP, backgrounding %3: +bg %3 + +disown -h %2 + +# make sure the killed processes don't cause a message +exec 5>&2 +exec 2>/dev/null + +echo killing... +kill -n 9 %2 %3 +wait # make sure we reap the processes while stderr is still redirected +echo done + +exec 2>&5 + +sleep 10 & +kill -STOP %1 +sleep 5 # give time for the shell to get the stop notification +echo after KILL -STOP, foregrounding %1 +fg %1 + +echo done |