Commit 331f837b authored by Stefan Behnel's avatar Stefan Behnel

change working directory when running C compiler to make it work with relative path names

parent 10dd4816
...@@ -121,6 +121,9 @@ class CythonCompileTestCase(unittest.TestCase): ...@@ -121,6 +121,9 @@ class CythonCompileTestCase(unittest.TestCase):
full_module_name=module) full_module_name=module)
def run_distutils(self, module, workdir, incdir): def run_distutils(self, module, workdir, incdir):
cwd = os.getcwd()
os.chdir(workdir)
try:
build_extension = build_ext(distutils_distro) build_extension = build_ext(distutils_distro)
build_extension.include_dirs = INCLUDE_DIRS[:] build_extension.include_dirs = INCLUDE_DIRS[:]
if incdir: if incdir:
...@@ -129,13 +132,15 @@ class CythonCompileTestCase(unittest.TestCase): ...@@ -129,13 +132,15 @@ class CythonCompileTestCase(unittest.TestCase):
extension = Extension( extension = Extension(
module, module,
sources = [os.path.join(workdir, module + '.c')], sources = [module + '.c'],
extra_compile_args = CFLAGS, extra_compile_args = CFLAGS,
) )
build_extension.extensions = [extension] build_extension.extensions = [extension]
build_extension.build_temp = workdir build_extension.build_temp = workdir
build_extension.build_lib = workdir build_extension.build_lib = workdir
build_extension.run() build_extension.run()
finally:
os.chdir(cwd)
def compile(self, directory, module, workdir, incdir, expect_errors): def compile(self, directory, module, workdir, incdir, expect_errors):
expected_errors = errors = () expected_errors = errors = ()
...@@ -165,9 +170,6 @@ class CythonCompileTestCase(unittest.TestCase): ...@@ -165,9 +170,6 @@ class CythonCompileTestCase(unittest.TestCase):
self.run_distutils(module, workdir, incdir) self.run_distutils(module, workdir, incdir)
class CythonRunTestCase(CythonCompileTestCase): class CythonRunTestCase(CythonCompileTestCase):
def shortDescription(self):
return "compiling and running " + self.module
def runTest(self): def runTest(self):
self.run() self.run()
......
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