Port job_summary test to pexpect

This commit is contained in:
Fabian Homborg 2020-06-13 15:12:20 +02:00
parent a6a1c6e775
commit c11457f2db
4 changed files with 49 additions and 39 deletions

View File

@ -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

View 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")