mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-20 22:13:55 +08:00
Port job_summary test to pexpect
This commit is contained in:
parent
a6a1c6e775
commit
c11457f2db
@ -1,39 +0,0 @@
|
||||
# vim: set filetype=expect:
|
||||
#
|
||||
# Test job summary for interactive shells.
|
||||
|
||||
set pid [spawn $fish]
|
||||
expect_prompt
|
||||
|
||||
send_line "function fish_job_summary; string join ':' \$argv; end"
|
||||
expect_prompt
|
||||
|
||||
# fish_job_summary is called when background job ends.
|
||||
send_line "sleep 0.5 &"
|
||||
sleep 0.050
|
||||
expect_prompt
|
||||
sleep 0.550
|
||||
expect -re "\[0-9]+:0:sleep 0.5 &:ENDED"
|
||||
send_line ""
|
||||
expect_prompt
|
||||
|
||||
# fish_job_summary is called when background job is signalled.
|
||||
# cmd_line correctly prints only the actually backgrounded job.
|
||||
send_line "false; sleep 10 &; true"
|
||||
sleep 0.100
|
||||
expect_prompt
|
||||
exec -- pkill -TERM sleep -P $pid
|
||||
sleep 0.100
|
||||
expect -re "\[0-9]+:0:sleep 10 &:SIGTERM:Polite quit request"
|
||||
send_line ""
|
||||
expect_prompt
|
||||
|
||||
# fish_job_summary is called when foreground job is signalled.
|
||||
# cmd_line contains the entire pipeline. proc_id and proc_name are set in a pipeline.
|
||||
send_line "true | sleep 6"
|
||||
sleep 0.100
|
||||
exec -- pkill -KILL sleep -P $pid
|
||||
sleep 0.100
|
||||
expect -re "\[0-9]+:1:true|sleep 6:SIGKILL:Forced quit:\[0-9]+:sleep"
|
||||
send_line ""
|
||||
expect_prompt
|
49
tests/pexpects/job_summary.py
Normal file
49
tests/pexpects/job_summary.py
Normal file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env python3
|
||||
from pexpect_helper import SpawnedProc
|
||||
|
||||
sp = SpawnedProc()
|
||||
send, sendline, sleep, expect_prompt, expect_re, expect_str = (
|
||||
sp.send,
|
||||
sp.sendline,
|
||||
sp.sleep,
|
||||
sp.expect_prompt,
|
||||
sp.expect_re,
|
||||
sp.expect_str,
|
||||
)
|
||||
|
||||
from time import sleep
|
||||
from subprocess import call
|
||||
|
||||
# Test job summary for interactive shells.
|
||||
expect_prompt()
|
||||
|
||||
sendline("function fish_job_summary; string join ':' $argv; end")
|
||||
expect_prompt()
|
||||
|
||||
# fish_job_summary is called when background job ends.
|
||||
sendline("sleep 0.5 &")
|
||||
sleep(0.050)
|
||||
expect_prompt()
|
||||
sleep(0.550)
|
||||
expect_re("[0-9]+:0:sleep 0.5 &:ENDED")
|
||||
sendline("")
|
||||
expect_prompt()
|
||||
|
||||
# fish_job_summary is called when background job is signalled.
|
||||
# cmd_line correctly prints only the actually backgrounded job.
|
||||
sendline("false; sleep 10 &; true")
|
||||
sleep(0.100)
|
||||
expect_prompt()
|
||||
sendline("kill -TERM $last_pid")
|
||||
sleep(0.100)
|
||||
expect_re("[0-9]+:0:sleep 10 &:SIGTERM:Polite quit request")
|
||||
sendline("")
|
||||
expect_prompt()
|
||||
|
||||
# fish_job_summary is called when foreground job is signalled.
|
||||
# cmd_line contains the entire pipeline. proc_id and proc_name are set in a pipeline.
|
||||
sendline("true | sleep 6")
|
||||
sleep(0.100)
|
||||
call(["pkill", "-KILL", "sleep", "-P", str(sp.spawn.pid)])
|
||||
sleep(0.100)
|
||||
expect_re("[0-9]+:1:true|sleep 6:SIGKILL:Forced quit:[0-9]+:sleep")
|
Loading…
x
Reference in New Issue
Block a user