Commit c242531d authored by Tarek Ziadé's avatar Tarek Ziadé

Merged revisions 73341 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r73341 | tarek.ziade | 2009-06-11 10:12:20 +0200 (Thu, 11 Jun 2009) | 1 line

  Fixed #5201: now distutils.sysconfig.parse_makefile() understands '53264' in Makefiles
........
parent 8e668444
...@@ -275,18 +275,25 @@ def parse_makefile(fn, g=None): ...@@ -275,18 +275,25 @@ def parse_makefile(fn, g=None):
while 1: while 1:
line = fp.readline() line = fp.readline()
if line is None: # eof if line is None: # eof
break break
m = _variable_rx.match(line) m = _variable_rx.match(line)
if m: if m:
n, v = m.group(1, 2) n, v = m.group(1, 2)
v = string.strip(v) v = v.strip()
if "$" in v: # `$$' is a literal `$' in make
tmpv = v.replace('$$', '')
if "$" in tmpv:
notdone[n] = v notdone[n] = v
else: else:
try: v = int(v) try:
except ValueError: pass v = int(v)
done[n] = v except ValueError:
# insert literal `$'
done[n] = v.replace('$$', '$')
else:
done[n] = v
# do variable interpolation here # do variable interpolation here
while notdone: while notdone:
...@@ -314,7 +321,7 @@ def parse_makefile(fn, g=None): ...@@ -314,7 +321,7 @@ def parse_makefile(fn, g=None):
else: else:
try: value = int(value) try: value = int(value)
except ValueError: except ValueError:
done[name] = string.strip(value) done[name] = value.strip()
else: else:
done[name] = value done[name] = value
del notdone[name] del notdone[name]
......
...@@ -2,11 +2,20 @@ ...@@ -2,11 +2,20 @@
from distutils import sysconfig from distutils import sysconfig
import os import os
import test
import unittest import unittest
from test.test_support import TESTFN from test.test_support import TESTFN
class SysconfigTestCase(unittest.TestCase): class SysconfigTestCase(unittest.TestCase):
def setUp(self):
super(SysconfigTestCase, self).setUp()
self.makefile = None
def tearDown(self):
if self.makefile is not None:
os.unlink(self.makefile)
super(SysconfigTestCase, self).tearDown()
def test_get_config_h_filename(self): def test_get_config_h_filename(self):
config_h = sysconfig.get_config_h_filename() config_h = sysconfig.get_config_h_filename()
...@@ -51,8 +60,22 @@ class SysconfigTestCase(unittest.TestCase): ...@@ -51,8 +60,22 @@ class SysconfigTestCase(unittest.TestCase):
self.assert_(isinstance(cvars, dict)) self.assert_(isinstance(cvars, dict))
self.assert_(cvars) self.assert_(cvars)
def test_parse_makefile_literal_dollar(self):
self.makefile = test.test_support.TESTFN
fd = open(self.makefile, 'w')
fd.write(r"CONFIG_ARGS= '--arg1=optarg1' 'ENV=\$$LIB'" '\n')
fd.write('VAR=$OTHER\nOTHER=foo')
fd.close()
d = sysconfig.parse_makefile(self.makefile)
self.assertEquals(d, {'CONFIG_ARGS': r"'--arg1=optarg1' 'ENV=\$LIB'",
'OTHER': 'foo'})
def test_suite(): def test_suite():
suite = unittest.TestSuite() suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(SysconfigTestCase)) suite.addTest(unittest.makeSuite(SysconfigTestCase))
return suite return suite
if __name__ == '__main__':
test.test_support.run_unittest(test_suite())
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment