diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py index 19f729434534..5f51efea1348 100644 --- a/mesonbuild/mtest.py +++ b/mesonbuild/mtest.py @@ -1497,7 +1497,7 @@ async def run(self, harness: 'TestHarness') -> TestRun: await self._run_cmd(harness, cmd) return self.runobj - async def _run_subprocess(self, args: T.List[str], *, + async def _run_subprocess(self, args: T.List[str], *, stdin: T.Optional[int], stdout: T.Optional[int], stderr: T.Optional[int], env: T.Dict[str, str], cwd: T.Optional[str]) -> TestSubprocess: # Let gdb handle ^C instead of us @@ -1523,6 +1523,7 @@ def postwait_fn() -> None: signal.signal(signal.SIGINT, previous_sigint_handler) p = await asyncio.create_subprocess_exec(*args, + stdin=stdin, stdout=stdout, stderr=stderr, env=env, @@ -1533,9 +1534,11 @@ def postwait_fn() -> None: async def _run_cmd(self, harness: 'TestHarness', cmd: T.List[str]) -> None: if self.console_mode is ConsoleUser.INTERACTIVE: + stdin = None stdout = None stderr = None else: + stdin = asyncio.subprocess.DEVNULL stdout = asyncio.subprocess.PIPE stderr = asyncio.subprocess.STDOUT \ if not self.options.split and not self.runobj.needs_parsing \ @@ -1549,6 +1552,7 @@ async def _run_cmd(self, harness: 'TestHarness', cmd: T.List[str]) -> None: extra_cmd.append(f'--gtest_output=xml:{gtestname}.xml') p = await self._run_subprocess(cmd + extra_cmd, + stdin=stdin, stdout=stdout, stderr=stderr, env=self.runobj.env,