diff options
Diffstat (limited to 'scripts/kconfig/tests/conftest.py')
| -rw-r--r-- | scripts/kconfig/tests/conftest.py | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/scripts/kconfig/tests/conftest.py b/scripts/kconfig/tests/conftest.py index 2a2a7e2da060..d94b79e012c0 100644 --- a/scripts/kconfig/tests/conftest.py +++ b/scripts/kconfig/tests/conftest.py @@ -81,7 +81,22 @@ class Conf:                  # For interactive modes such as oldaskconfig, oldconfig,                  # send 'Enter' key until the program finishes.                  if interactive: -                    ps.stdin.write(b'\n') +                    try: +                        ps.stdin.write(b'\n') +                        ps.stdin.flush() +                    except (BrokenPipeError, OSError): +                        # Process has exited, stop sending input +                        break + +            # Close stdin gracefully +            try: +                ps.stdin.close() +            except (BrokenPipeError, OSError): +                # Ignore broken pipe on close +                pass + +            # Wait for process to complete +            ps.wait()              self.retcode = ps.returncode              self.stdout = ps.stdout.read().decode() | 
