diff options
author | Peter Stephenson <p.stephenson@samsung.com> | 2018-04-25 10:16:51 +0100 |
---|---|---|
committer | Peter Stephenson <p.stephenson@samsung.com> | 2018-04-25 10:16:51 +0100 |
commit | c6dbd862d0c5d1d539ad3d58dc1c754a9f166308 (patch) | |
tree | 1e44bf35d71399bf2c36189a1fce380fd0b43a0f /Test/W02jobs.ztst | |
parent | 95d861d0283e47c64980c844d66be44c6c4aad8a (diff) | |
download | zsh-c6dbd862d0c5d1d539ad3d58dc1c754a9f166308.tar.gz zsh-c6dbd862d0c5d1d539ad3d58dc1c754a9f166308.tar.xz zsh-c6dbd862d0c5d1d539ad3d58dc1c754a9f166308.zip |
42714: Add fg and bg tests.
Use ed to get minimal user interaction without needing advanced terminal handling. Improve test output of failures of pattern differences.
Diffstat (limited to 'Test/W02jobs.ztst')
-rw-r--r-- | Test/W02jobs.ztst | 66 |
1 files changed, 62 insertions, 4 deletions
diff --git a/Test/W02jobs.ztst b/Test/W02jobs.ztst index 65b860072..1ec0b8e8b 100644 --- a/Test/W02jobs.ztst +++ b/Test/W02jobs.ztst @@ -13,6 +13,14 @@ zpty_input() { zpty -w zsh "${(F)@}" $'\n' } + zpty_line() { + local REPLY + integer i + for (( i = 0; i < ${1:-1}; ++i )); do + zpty -r zsh REPLY + print -r -- ${REPLY%%($'\r\n'|$'\n')} + done + } zpty_stop() { # exit twice in case of check_jobs zpty -w zsh $'exit\nexit\n' @@ -161,15 +169,17 @@ zpty_start zpty_input 'sleep 10 & sleep 9 & sleep 8 & sleep 7 &' - sleep 0.1 + zpty_line 4 zpty_input 'kill %4' + # Dunno why we need this when checking input... sleep 0.1 + zpty_line zpty_input 'kill -HUP %3' - sleep 0.1 + zpty_line zpty_input 'kill -INT %2' - sleep 0.1 + zpty_line zpty_input 'kill -KILL %1' - sleep 0.1 + zpty_line zpty_stop 0:various `kill` signals with multiple running jobs *>\[1] [0-9]## @@ -181,6 +191,54 @@ *>\[2] ? interrupt*sleep* *>\[1] ? kill*sleep* + zpty_start + zpty_input $'ed 2>/dev/null\n=\n' + zpty_line + zpty_input $'a\nstuff1\n.\nw tmpfile\nq\n' + zpty_stop + cat tmpfile + rm -f tmpfile +0:Sanity check of "ed" as foreground process +*>0 +*>stuff1 +F:This test checks we can run the simple editor "ed" as a way of testing +F:user interaction for later job control tests . The test itself is +F:trivial; its failure may simply indicate our test methodology does not +F:work on this system. + + zpty_start + zpty_input $'ed 2>/dev/null\n=\n' + zpty_line + zpty_input $'\C-z' + zpty_input 'fg' + zpty_input $'a\nstuff2\n.\nw tmpfile\nq\n' + zpty_stop + cat tmpfile + rm -f tmpfile +0:Basic fg with subsequent user interaction +*>0 +*>zsh:*(stopped|suspended)*ed* +*>*continued*ed* +*>stuff2 + + zpty_start + zpty_input $'ed 2>/dev/null\n=\n' + zpty_line + zpty_input $'\C-z' + zpty_input 'bg' + zpty_input 'fg' + zpty_input $'a\nstuff3\n.\nw tmpfile\nq\n' + zpty_stop + cat tmpfile + rm -f tmpfile +0:bg and fg with user input +*>0 +*>zsh:*(stopped|suspended)*ed* +*>*continued*ed* +*>*(stopped|suspended)*ed* +*>*continued*ed* +*>stuff3 + %clean zmodload -ui zsh/zpty |