]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-89858: Fix test_embed for out-of-tree builds (GH-93465)
authorKumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Fri, 17 Jun 2022 16:24:17 +0000 (21:54 +0530)
committerGitHub <noreply@github.com>
Fri, 17 Jun 2022 16:24:17 +0000 (17:24 +0100)
Lib/test/test_embed.py
Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst [new file with mode: 0644]

index b2a1eba34b6500704ebb5f137f82efa99a3d6a33..c7e5663566b06f39be2133da3a202563240fa136 100644 (file)
@@ -67,18 +67,16 @@ class EmbeddingTestsMixin:
             ext = ("_d" if debug_build(sys.executable) else "") + ".exe"
             exename += ext
             exepath = builddir
-            expecteddir = os.path.join(support.REPO_ROOT, builddir)
         else:
             exepath = os.path.join(builddir, 'Programs')
-            expecteddir = os.path.join(support.REPO_ROOT, 'Programs')
         self.test_exe = exe = os.path.join(exepath, exename)
-        if exepath != expecteddir or not os.path.exists(exe):
+        if not os.path.exists(exe):
             self.skipTest("%r doesn't exist" % exe)
         # This is needed otherwise we get a fatal error:
         # "Py_Initialize: Unable to get the locale encoding
         # LookupError: no codec search functions registered: can't find encoding"
         self.oldcwd = os.getcwd()
-        os.chdir(support.REPO_ROOT)
+        os.chdir(builddir)
 
     def tearDown(self):
         os.chdir(self.oldcwd)
@@ -1375,10 +1373,11 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
         with self.tmpdir_with_python() as tmpdir:
             # pybuilddir.txt is a sub-directory relative to the current
             # directory (tmpdir)
+            vpath = sysconfig.get_config_var("VPATH") or ''
             subdir = 'libdir'
             libdir = os.path.join(tmpdir, subdir)
             # The stdlib dir is dirname(executable) + VPATH + 'Lib'
-            stdlibdir = os.path.join(tmpdir, 'Lib')
+            stdlibdir = os.path.normpath(os.path.join(tmpdir, vpath, 'Lib'))
             os.mkdir(libdir)
 
             filename = os.path.join(tmpdir, 'pybuilddir.txt')
diff --git a/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst b/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst
new file mode 100644 (file)
index 0000000..ef806a9
--- /dev/null
@@ -0,0 +1 @@
+Fix ``test_embed`` for out-of-tree builds. Patch by Kumar Aditya.