fish-shell/tests
Fabian Boehm e66f6878b5 Make tests usable with path with spaces
This is somewhat subtle:

The #RUN line in a littlecheck file will be run by a posix shell,
which means the substitutions will also be mangled by it.

Now, we *have* shell-quoted them, but unfortunately what we need is to
quote them for inside a pre-existing layer of quotes, e.g.

    # RUN: fish -C 'set -g fish %fish'

here, %fish can't be replaced with `'path with spaces/fish'`, because
that ends up as

    # RUN: fish -C 'set -g fish 'path with spaces/fish''

which is just broken.

So instead, we pass it as a variable to that fish:

    # RUN: fish=%fish fish...

In addition, we need to not mangle the arguments in our test_driver.

For that, because we insist on posix shell, which has only one array,
and we source a file, we *need* to stop having that file use
arguments.

Which is okay - test_env.sh could previously be used to start a test,
and now it no longer can because that is test_*driver*.sh's job.

For the interactive tests, it's slightly different:

pexpect.spawn(foo) is sensitive to shell metacharacters like space.

So we shell-quote it.

But if you pass any args to pexpect.spawn, it no longer uses a shell,
and so we cannot shell-quote it.

There could be a better way to fix this?
2025-01-01 16:45:43 +01:00
..
checks Make tests usable with path with spaces 2025-01-01 16:45:43 +01:00
pexpects Make tests usable with path with spaces 2025-01-01 16:45:43 +01:00
test_functions Fix tmux-multiline-prompt test with EDITOR=vim 2024-10-27 05:03:30 +01:00
.gitignore tweak gitignore rules for *tests* directory 2017-02-20 20:29:43 -08:00
filter-control-sequences.fish fixup! filter control sequences 2024-11-21 21:20:35 +01:00
fish_test_helper.c Compile fish_test_helper in the test driver 2025-01-01 16:45:43 +01:00
history_sample_bash Support $(cmd) command substitution as alternative to (cmd) 2021-07-13 21:33:42 +02:00
history_sample_corrupt1
history_sample_fish_1_x Enforce that history items must end with trailing newlines 2021-05-10 14:23:07 -07:00
history_sample_fish_2_0 Enforce that history items must end with trailing newlines 2021-05-10 14:23:07 -07:00
interactive.config Remove some unused functions from the test harness 2020-11-15 09:17:23 +01:00
interactive.fish Tests: Don't cd to the tests directory! 2025-01-01 16:45:43 +01:00
littlecheck.py littlecheck: Update to shell-quote replacements 2025-01-01 16:45:43 +01:00
pexpect_helper.py Make tests usable with path with spaces 2025-01-01 16:45:43 +01:00
test_driver.sh Make tests usable with path with spaces 2025-01-01 16:45:43 +01:00
test_env.sh Make tests usable with path with spaces 2025-01-01 16:45:43 +01:00
test_util.fish Run each test fully independently in own environment 2021-08-29 08:56:12 +02:00
test.fish tests: Run filter-ctrl with %fish explicitly 2025-01-01 16:45:43 +01:00