From bd34c9af9fd0e848f527baca854a73764ecd6f67 Mon Sep 17 00:00:00 2001 From: Robert Bradshaw Date: Fri, 28 Jan 2011 01:29:58 -0800 Subject: [PATCH] Restore cwd if debugger setUp() fails (to avoid breaking later tests). --- Cython/Debugger/Tests/TestLibCython.py | 113 +++++++++++++------------ 1 file changed, 59 insertions(+), 54 deletions(-) diff --git a/Cython/Debugger/Tests/TestLibCython.py b/Cython/Debugger/Tests/TestLibCython.py index 1b37d44f..88ea1b14 100644 --- a/Cython/Debugger/Tests/TestLibCython.py +++ b/Cython/Debugger/Tests/TestLibCython.py @@ -90,60 +90,65 @@ class DebuggerTestCase(unittest.TestCase): self.cfuncs_destfile = os.path.join(self.tempdir, 'cfuncs') self.cwd = os.getcwd() - os.chdir(self.tempdir) - - shutil.copy(codefile, self.destfile) - shutil.copy(cfuncs_file, self.cfuncs_destfile + '.c') - - compiler = ccompiler.new_compiler() - compiler.compile(['cfuncs.c'], debug=True, extra_postargs=['-fPIC']) - - opts = dict( - test_directory=self.tempdir, - module='codefile', - ) - - optimization_disabler = build_ext.Optimization() - optimization_disabler.disable_optimization() - - cython_compile_testcase = runtests.CythonCompileTestCase( - workdir=self.tempdir, - # we clean up everything (not only compiled files) - cleanup_workdir=False, - **opts - ) - - cython_compile_testcase.run_cython( - targetdir=self.tempdir, - incdir=None, - annotate=False, - extra_compile_options={ - 'gdb_debug':True, - 'output_dir':self.tempdir, - }, - **opts - ) - - cython_compile_testcase.run_distutils( - incdir=None, - workdir=self.tempdir, - extra_extension_args={'extra_objects':['cfuncs.o']}, - **opts - ) - - optimization_disabler.restore_state() - - # ext = Cython.Distutils.extension.Extension( - # 'codefile', - # ['codefile.pyx'], - # pyrex_gdb=True, - # extra_objects=['cfuncs.o']) - # - # distutils.core.setup( - # script_args=['build_ext', '--inplace'], - # ext_modules=[ext], - # cmdclass=dict(build_ext=Cython.Distutils.build_ext) - # ) + try: + os.chdir(self.tempdir) + + shutil.copy(codefile, self.destfile) + shutil.copy(cfuncs_file, self.cfuncs_destfile + '.c') + + compiler = ccompiler.new_compiler() + compiler.compile(['cfuncs.c'], debug=True, extra_postargs=['-fPIC']) + + opts = dict( + test_directory=self.tempdir, + module='codefile', + ) + + optimization_disabler = build_ext.Optimization() + optimization_disabler.disable_optimization() + + cython_compile_testcase = runtests.CythonCompileTestCase( + workdir=self.tempdir, + # we clean up everything (not only compiled files) + cleanup_workdir=False, + **opts + ) + + cython_compile_testcase.run_cython( + targetdir=self.tempdir, + incdir=None, + annotate=False, + extra_compile_options={ + 'gdb_debug':True, + 'output_dir':self.tempdir, + }, + **opts + ) + + cython_compile_testcase.run_distutils( + incdir=None, + workdir=self.tempdir, + extra_extension_args={'extra_objects':['cfuncs.o']}, + **opts + ) + + optimization_disabler.restore_state() + + # ext = Cython.Distutils.extension.Extension( + # 'codefile', + # ['codefile.pyx'], + # pyrex_gdb=True, + # extra_objects=['cfuncs.o']) + # + # distutils.core.setup( + # script_args=['build_ext', '--inplace'], + # ext_modules=[ext], + # cmdclass=dict(build_ext=Cython.Distutils.build_ext) + # ) + + except: + os.chdir(self.cwd) + raise def tearDown(self): if not test_gdb(): -- 2.26.2