]> granicus.if.org Git - python/commitdiff
Issue #14771: Redirect GDB's stdin to avoid messing the terminal settings
authorMartin Panter <vadmium+py@gmail.com>
Sat, 16 Jan 2016 05:18:47 +0000 (05:18 +0000)
committerMartin Panter <vadmium+py@gmail.com>
Sat, 16 Jan 2016 05:18:47 +0000 (05:18 +0000)
Otherwise, GDB seems to affect the terminal's foreground process group,
interfering with test_ioctl, which does not expect the foreground process to
change during the test. This change also solves the problem of the tests
being stopped in the shell if test_gdb is run twice in parallel.

Lib/test/test_gdb.py

index 16fb389e7b9a938da8c1004cee516272a236a107..78fc55c2f204d0600ba279794a4b34327edda8fe 100644 (file)
@@ -75,6 +75,9 @@ def run_gdb(*args, **env_vars):
     if (gdb_major_version, gdb_minor_version) >= (7, 4):
         base_cmd += ('-iex', 'add-auto-load-safe-path ' + checkout_hook_path)
     proc = subprocess.Popen(base_cmd + args,
+                            # Redirect stdin to prevent GDB from messing with
+                            # the terminal settings
+                            stdin=subprocess.PIPE,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE,
                             env=env)