Fix distutils tests on Windows (#12678).

- First, support.fixup_build_ext (already used to set proper
  library_dirs value under Unix shared builds) gains the ability to
  correctly set the debug attribute under Windows debug builds.

- Second, the filename for the extension module gets a _d suffix under
  debug builds.

- Third, the test code properly puts our customized build_ext object
  into an internal dictionary to make sure that the install command will
  later use our object instead of re-creating one.  That’s the downside
  of using low-level APIs in our test code: we have to manually push
  knobs and turn handles that would otherwise be handled behind the
  scenes.

Thanks to Nadeem for the testing.
This commit is contained in:
Éric Araujo 2011-08-24 01:29:10 +02:00
parent 7a084105a0
commit 175eb995d3
3 changed files with 30 additions and 23 deletions

View file

@ -47,10 +47,6 @@ class BuildExtTestCase(TempdirManager,
dist.package_dir = self.tmp_dir
cmd = build_ext(dist)
fixup_build_ext(cmd)
if os.name == "nt":
# On Windows, we must build a debug version iff running
# a debug build of Python
cmd.debug = sys.executable.endswith("_d.exe")
cmd.build_lib = self.tmp_dir
cmd.build_temp = self.tmp_dir
@ -305,9 +301,6 @@ class BuildExtTestCase(TempdirManager,
cmd.ensure_finalized()
self.assertEqual(len(cmd.get_outputs()), 1)
if os.name == "nt":
cmd.debug = sys.executable.endswith("_d.exe")
cmd.build_lib = os.path.join(self.tmp_dir, 'build')
cmd.build_temp = os.path.join(self.tmp_dir, 'tempt')