fish-shell/tests/pexpects
ridiculousfish 82fed6fc2f Correctly propagate signals from cancelled jobs into parse_execution_context
This concerns code like the following:

    while true ; sleep 100; end

Here 'while' is a "simple block execution" and does not create a new job,
or get a pgid. Each 'sleep' however is an external command execution, and
is treated as a distinct job. (bash is the same way). So `while` and
`sleep` are always in different job groups.

The problem comes about if 'sleep' is cancelled through SIGINT or SIGQUIT.
Prior to 2a4c545b21, if *any* process got a SIGINT or SIGQUIT, then fish
would mark a global "stop executing" variable. This obviously prevents
background execution of fish functions.

In 2a4c545b21, this was changed so only the job's group gets marked as
cancelled. However in the case of one job group spawning another, we
weren't propagating the signal.

This adds a signal to parse_execution_context which the parser checks after
execution. It's not ideal since now we have three different places where
signals can be recorded. However it fixes this regression which is too
important to leave unfixed for long.

Fixes #7259
2020-08-13 15:30:15 -07:00
..
bind_mode_events.py Reformat pexpects 2020-06-08 17:33:04 +02:00
bind.py Unset X-bit on tests 2020-06-13 16:18:17 +02:00
commandline.py Reformat pexpects 2020-06-08 17:33:04 +02:00
complete.py Reformat pexpects 2020-06-08 17:33:04 +02:00
exit.py tests: Exit: Try sleeping multiple times 2020-08-08 16:35:08 +02:00
fg.py tests: Add an additional "sleep" 2020-08-08 16:35:08 +02:00
fkr.py tests: Don't send \cA 2020-06-17 15:55:31 +02:00
generic.py Port generic.expect to pexpect 2020-06-08 22:57:46 +02:00
histfile.py Another formatting run 2020-06-24 20:43:56 +02:00
history.py Another formatting run 2020-06-24 20:43:56 +02:00
job_summary.py Fix the job_summary pexpect test on Mac 2020-08-12 16:40:32 -07:00
pipeline.py Unset X-bit on tests 2020-06-13 16:18:17 +02:00
postexec.py Return no status from successful variable assignments 2020-08-05 12:23:49 -07:00
read.py Port read tests to expect 2020-06-13 15:21:40 +02:00
sigint.py Correctly propagate signals from cancelled jobs into parse_execution_context 2020-08-13 15:30:15 -07:00
signals.py tests/signals: Add missing sys import 2020-08-12 18:38:15 +02:00
tty_ownership.py Bravely remove reclaim... param from continue_job, and rework tcsetpgrp calls 2020-07-27 14:51:37 -07:00
wait.py Port wait test to pexpect 2020-06-13 15:21:40 +02:00