summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2023-12-13 15:38:45 (GMT)
committerGitHub <noreply@github.com>2023-12-13 15:38:45 (GMT)
commit79dad03747fe17634136209f1bcaf346a8c10617 (patch)
tree0ca624c64faee7dba75917b1483ab9318c2676f5 /Lib/test
parent498a096a51a215cd3084845131e619222b906b3e (diff)
downloadcpython-79dad03747fe17634136209f1bcaf346a8c10617.zip
cpython-79dad03747fe17634136209f1bcaf346a8c10617.tar.gz
cpython-79dad03747fe17634136209f1bcaf346a8c10617.tar.bz2
gh-111650: Ensure pyconfig.h includes Py_GIL_DISABLED on Windows (GH-112778)
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_sysconfig.py8
-rw-r--r--Lib/test/test_venv.py18
2 files changed, 17 insertions, 9 deletions
diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
index 2a6813f..a19c04b 100644
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -472,11 +472,15 @@ class TestSysConfig(unittest.TestCase):
# should be a full source checkout.
Python_h = os.path.join(srcdir, 'Include', 'Python.h')
self.assertTrue(os.path.exists(Python_h), Python_h)
- # <srcdir>/PC/pyconfig.h always exists even if unused on POSIX.
- pyconfig_h = os.path.join(srcdir, 'PC', 'pyconfig.h')
+ # <srcdir>/PC/pyconfig.h.in always exists even if unused
+ pyconfig_h = os.path.join(srcdir, 'PC', 'pyconfig.h.in')
self.assertTrue(os.path.exists(pyconfig_h), pyconfig_h)
pyconfig_h_in = os.path.join(srcdir, 'pyconfig.h.in')
self.assertTrue(os.path.exists(pyconfig_h_in), pyconfig_h_in)
+ if os.name == 'nt':
+ # <executable dir>/pyconfig.h exists on Windows in a build tree
+ pyconfig_h = os.path.join(sys.executable, '..', 'pyconfig.h')
+ self.assertTrue(os.path.exists(pyconfig_h), pyconfig_h)
elif os.name == 'posix':
makefile_dir = os.path.dirname(sysconfig.get_makefile_filename())
# Issue #19340: srcdir has been realpath'ed already
diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py
index 890672c..617d14d 100644
--- a/Lib/test/test_venv.py
+++ b/Lib/test/test_venv.py
@@ -46,14 +46,18 @@ if is_emscripten or is_wasi:
def check_output(cmd, encoding=None):
p = subprocess.Popen(cmd,
stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- encoding=encoding)
+ stderr=subprocess.PIPE)
out, err = p.communicate()
if p.returncode:
if verbose and err:
- print(err.decode('utf-8', 'backslashreplace'))
+ print(err.decode(encoding or 'utf-8', 'backslashreplace'))
raise subprocess.CalledProcessError(
p.returncode, cmd, out, err)
+ if encoding:
+ return (
+ out.decode(encoding, 'backslashreplace'),
+ err.decode(encoding, 'backslashreplace'),
+ )
return out, err
class BaseTest(unittest.TestCase):
@@ -281,8 +285,8 @@ class BasicTest(BaseTest):
('get_config_h_filename()', sysconfig.get_config_h_filename())):
with self.subTest(call):
cmd[2] = 'import sysconfig; print(sysconfig.%s)' % call
- out, err = check_output(cmd)
- self.assertEqual(out.strip(), expected.encode(), err)
+ out, err = check_output(cmd, encoding='utf-8')
+ self.assertEqual(out.strip(), expected, err)
@requireVenvCreate
@unittest.skipUnless(can_symlink(), 'Needs symlinks')
@@ -303,8 +307,8 @@ class BasicTest(BaseTest):
('get_config_h_filename()', sysconfig.get_config_h_filename())):
with self.subTest(call):
cmd[2] = 'import sysconfig; print(sysconfig.%s)' % call
- out, err = check_output(cmd)
- self.assertEqual(out.strip(), expected.encode(), err)
+ out, err = check_output(cmd, encoding='utf-8')
+ self.assertEqual(out.strip(), expected, err)
if sys.platform == 'win32':
ENV_SUBDIRS = (