49787: test for jobs fix in 49783

This commit is contained in:
Peter Stephenson 2022-03-03 19:07:53 +00:00
parent cb8edf5bd9
commit 2be2efc122
3 changed files with 56 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2022-03-03 Peter Stephenson <p.w.stephenson@ntlworld.com>
* 49787: Test/W02jobs.ztst, Test/W03jobparameters.ztst: test for
jobs fix in 49783.
2022-03-01 Peter Stephenson <p.stephenson@samsung.com>
* 49783: Src/jobs.c, Src/Modules/parameter.c: Consistently use

View File

@ -144,12 +144,14 @@
zpty_start
zpty_input 'sleep 3 &'
zpty_input 'jobs -r'
zpty_input '(jobs -r)'
zpty_input 'print -- -'
zpty_input 'jobs -s'
zpty_stop
0:`jobs -r` and `jobs -s` with running job
*>\[1] [0-9]##
*>\[1] + running*sleep*
*>\[1] + running*sleep*
*>-
*>zsh:*SIGHUPed*

View File

@ -0,0 +1,49 @@
# Tests for interactive job control with parameter state
%prep
if zmodload zsh/zpty 2> /dev/null; then
zpty_start() {
export PS1= PS2=
zpty -d
zpty zsh "${(q)ZTST_testdir}/../Src/zsh -fiV +Z"
}
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'
# zpty gives no output when piped without these braces (?)
{ zpty -r zsh } | sed $'/[^[:space:]]/!d; s/\r$//;'
zpty -d
:
}
if ! zmodload zsh/parameter 2> /dev/null; then
ZTST_unimplemented='the zsh/parameter module is not available'
fi
else
ZTST_unimplemented='the zsh/zpty module is not available'
fi
%test
zpty_start
zpty_input 'sleep 3 &'
zpty_input 'print $jobstates'
zpty_input '(print $jobstates)'
zpty_input 'jobs -s'
zpty_stop
0:$jobstate for running job in main shell and subshell
*>\[1] [0-9]##
*>running:+:*=running
*>running:+:*=running
*>zsh:*SIGHUPed*