kitty/kitty_tests
Miro Hrončok dcd67580f5 tests: accept coreutils >= 9.12 shell-quoted env output in test_ssh_env_vars
Since coreutils 9.12, env shell-quotes values written to a terminal
by default (a pty counts as one, see coreutils issue #355 for the
history: https://github.com/coreutils/coreutils/issues/355).

This makes the literal, unquoted match for TSET= in
test_ssh_env_vars no longer find the value, so the test times out
waiting for it and eventually surfaces as an EIO reading from the pty
once the child has already exited. Accept the shlex-quoted form of
the value as well, since the ssh kitten's own env-passing code does
not use env and is unaffected.

Observed failure (Fedora rawhide buildroot with coreutils-9.12-1.fc46):

    ======================================================================
    ERROR: test_ssh_env_vars (kitty_tests.ssh.SSHKitten.test_ssh_env_vars)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "kitty_tests/__init__.py", line 461, in wait_till
        self.process_input_from_child(timeout=end_time - time.monotonic())
      File "kitty_tests/__init__.py", line 449, in process_input_from_child
        data = os.read(self.master_fd, io.DEFAULT_BUFFER_SIZE)
    OSError: [Errno 5] Input/output error

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
      File "kitty_tests/__init__.py", line 250, in wrapper
        return func(*args, **kwargs)
      File "kitty_tests/ssh.py", line 146, in test_ssh_env_vars
        pty.wait_till(lambda: 'TSET={}'.format(tset.replace('$A', 'AAA')) in pty.screen_contents())
      File "kitty_tests/__init__.py", line 464, in wait_till
        raise Exception(f'Failed to read from pty with error: {e}. {self.screen_contents_for_error()}') from e
    Exception: Failed to read from pty with error: [Errno 5] Input/output error. Screen contents as repr:
    '...\nA=AAA\nTSET=\'AAA-$(echo no)-`echo no2` !Q5 "something else"\'\n...'

    Ran 337 tests in 19.341s
    FAILED (errors=1, skipped=3)

Assisted-By: Claude Sonnet 5
2026-09-22 13:42:05 +02:00
..
__init__.py Test suite: Fix small numbers of Python tests being run in incorrect environment 2026-09-15 16:50:21 +05:30
atexit.py
base.py
CascadiaCode-Regular.otf
check_build.py
child.py
choose_files.py
clipboard.py
ComfyCode-Regular.ttf
command_palette.py
completion.py
crypto.py
datatypes.py Fix the IPC lock used by custom shader compilation 2026-09-22 15:21:40 +05:30
dnd.py
dnd_kitten.py
edit_in_kitty.py edit-in-kitty: Harden parsing of edit commands received from clients 2026-09-17 19:56:56 +05:30
file_transmission.py
FiraCode-Medium.otf
fonts.py ... 2026-09-19 12:10:40 +05:30
glfw.py
gr.py
GraphemeBreakTest.json
graphics.py Graphics protocol: Fix file descriptor leak that can be triggered by malicious clients 2026-09-14 21:03:15 +05:30
hints.py
iosevka-regular.ttf
iterable_arguments.py Handle empty iterables before testing their truthiness 2026-09-22 16:30:29 +08:00
keys.py fix #10490 2026-09-17 14:22:59 +05:30
layout.py Splits: Resize adjacent regions consistently when dragging dividers 2026-09-22 17:09:21 +08:00
LiberationMono-Regular.ttf
main.py Test suite: Fix small numbers of Python tests being run in incorrect environment 2026-09-15 16:50:21 +05:30
mouse.py
multicell.py
notifications.py
notify.py
open_actions.py
options.py
panels.py
parser.py
remote_control.py
screen.py add test for IME around cursor 2026-09-19 15:51:09 +05:30
search_query_parser.py Fix #10491 2026-09-17 17:03:58 +05:30
selection_drag.py
shell_integration.py
shm.py
single_instance.py Linux only allow single instance socket use by same user 2026-09-18 14:54:49 +05:30
slang.py cleanup previous PR fixing one regression and doing code cleanups 2026-09-16 12:57:51 +05:30
ssh.py tests: accept coreutils >= 9.12 shell-quoted env output in test_ssh_env_vars 2026-09-22 13:42:05 +02:00
tab_bar.py
tab_drop.py cleanup previous PR and fix some bugs I doscovered while doing it 2026-09-15 22:04:44 +05:30
tui.py
twemoji_smiley-cff2_colr_1.otf
utmp.py