diff --git a/tests/checks/disown-parent.fish b/tests/checks/disown-parent.fish index adfe8e344..9b9a33366 100644 --- a/tests/checks/disown-parent.fish +++ b/tests/checks/disown-parent.fish @@ -1,4 +1,5 @@ # RUN: env fish_test_helper=%fish_test_helper %fish %s +#REQUIRES: command -v %fish_test_helper # Ensure that a job which attempts to disown itself does not explode. # Here fish_test_helper is the process group leader; we attempt to disown diff --git a/tests/checks/fds.fish b/tests/checks/fds.fish index de581e4b2..a86a223f4 100644 --- a/tests/checks/fds.fish +++ b/tests/checks/fds.fish @@ -1,4 +1,5 @@ # RUN: %fish -C "set helper %fish_test_helper" %s +#REQUIRES: command -v %fish_test_helper # Check that we don't leave stray FDs. diff --git a/tests/checks/job-control-noninteractive.fish b/tests/checks/job-control-noninteractive.fish index da4566306..5262ac761 100644 --- a/tests/checks/job-control-noninteractive.fish +++ b/tests/checks/job-control-noninteractive.fish @@ -1,4 +1,5 @@ #RUN: env fth=%fish_test_helper fish=%fish %fish %s +#REQUIRES: command -v %fish_test_helper # Ensure job control works in non-interactive environments. diff --git a/tests/checks/pipeline-pgroup.fish b/tests/checks/pipeline-pgroup.fish index 07da18829..9499ef316 100644 --- a/tests/checks/pipeline-pgroup.fish +++ b/tests/checks/pipeline-pgroup.fish @@ -1,4 +1,5 @@ # RUN: env fth=%fish_test_helper fish=%fish %fish %s +#REQUIRES: command -v %fish_test_helper status job-control full diff --git a/tests/checks/sigint.fish b/tests/checks/sigint.fish index 7838ece07..4bd0d3299 100644 --- a/tests/checks/sigint.fish +++ b/tests/checks/sigint.fish @@ -1,4 +1,5 @@ #RUN: %fish -C "set -g helper %fish_test_helper; set -g fish %fish" %s +#REQUIRES: command -v %fish_test_helper # Check that nohup is propagated. set output_path (mktemp) diff --git a/tests/checks/sigint2.fish b/tests/checks/sigint2.fish index 0160cf3b5..2084d3b97 100644 --- a/tests/checks/sigint2.fish +++ b/tests/checks/sigint2.fish @@ -1,6 +1,7 @@ #RUN: %fish -C "set helper %fish_test_helper" %s # This hangs on OpenBSD #REQUIRES: test "$(uname)" != OpenBSD +#REQUIRES: command -v %fish_test_helper # Command subs run in same pgroup as fish, even if job control is 'all'. # Verify that they get the same pgroup across runs (presumably fish's). diff --git a/tests/checks/signal.fish b/tests/checks/signal.fish index 20d0fd6c2..b203065e7 100644 --- a/tests/checks/signal.fish +++ b/tests/checks/signal.fish @@ -1,4 +1,5 @@ # RUN: env fish_test_helper=%fish_test_helper %fish -C 'set -l fish %fish' %s +#REQUIRES: command -v %fish_test_helper $fish -c 'function main; exit 4; true; end; main' echo $status diff --git a/tests/checks/trap.fish b/tests/checks/trap.fish index 0b7def74d..c88de3abd 100644 --- a/tests/checks/trap.fish +++ b/tests/checks/trap.fish @@ -1,4 +1,5 @@ # RUN: env fth=%fish_test_helper %fish %s +#REQUIRES: command -v %fish_test_helper set -g SIGUSR1_COUNT 0 diff --git a/tests/interactive.fish b/tests/interactive.fish index 268f25435..0a6dca8b1 100755 --- a/tests/interactive.fish +++ b/tests/interactive.fish @@ -36,7 +36,8 @@ function test_pexpect_file set -lx --prepend PYTHONPATH (realpath $PWD) set -lx fish $FISHDIR/fish set -lx fish_key_reader $FISHDIR/fish_key_reader - set -lx fish_test_helper $FISHDIR/fish_test_helper + path is -fx -- $FISHDIR/fish_test_helper + and set -lx fish_test_helper $FISHDIR/fish_test_helper # Note we require Python3. python3 $file diff --git a/tests/pexpects/exit_nohang.py b/tests/pexpects/exit_nohang.py index 1b5d51a61..b50c36ed8 100644 --- a/tests/pexpects/exit_nohang.py +++ b/tests/pexpects/exit_nohang.py @@ -26,6 +26,9 @@ fish_pid = sp.spawn.pid # Launch fish_test_helper. expect_prompt() exe_path = os.environ.get("fish_test_helper") +if not exe_path: + sys.exit(127) + sp.sendline(exe_path + " nohup_wait") # We expect it to transfer tty ownership to fish_test_helper. diff --git a/tests/pexpects/fg.py b/tests/pexpects/fg.py index 628306006..50af50625 100644 --- a/tests/pexpects/fg.py +++ b/tests/pexpects/fg.py @@ -2,6 +2,7 @@ from pexpect_helper import SpawnedProc import platform import subprocess +import os sp = SpawnedProc() send, sendline, sleep, expect_prompt, expect_re, expect_str = ( @@ -75,6 +76,10 @@ expect_prompt() sendline("jobs") expect_prompt("jobs: There are no jobs") +if not os.environ.get("fish_test_helper", ""): + import sys + sys.exit(127) + # Regression test for #2214: foregrounding from a key binding works! sendline(r"bind ctrl-r 'fg >/dev/null 2>/dev/null'") expect_prompt() diff --git a/tests/pexpects/pipeline.py b/tests/pexpects/pipeline.py index 47aa3f199..a1f74d2a1 100644 --- a/tests/pexpects/pipeline.py +++ b/tests/pexpects/pipeline.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 from pexpect_helper import SpawnedProc +import os sp = SpawnedProc() send, sendline, expect_prompt, expect_str = ( @@ -13,6 +14,10 @@ expect_prompt() sendline("function echo_wrap ; /bin/echo $argv ; sleep 0.1; end") expect_prompt() +if not os.environ.get("fish_test_helper", ""): + import sys + sys.exit(127) + for i in range(5): sendline( "echo_wrap 1 2 3 4 | $fish_test_helper become_foreground_then_print_stderr ; or exit 1" diff --git a/tests/pexpects/stdin_nonblocking.py b/tests/pexpects/stdin_nonblocking.py index 935315030..06f5dec22 100644 --- a/tests/pexpects/stdin_nonblocking.py +++ b/tests/pexpects/stdin_nonblocking.py @@ -12,6 +12,10 @@ send, sendline, expect_prompt, expect_str, sleep = ( sp.sleep, ) +if not os.environ.get("fish_test_helper", ""): + import sys + sys.exit(127) + # Launch fish_test_helper. expect_prompt() exe_path = os.environ.get("fish_test_helper")