diff options
author | Steven Knight <knight@baldmt.com> | 2008-08-26 13:26:48 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2008-08-26 13:26:48 (GMT) |
commit | f6bd57cdfa43fb809688a45e8b5bb2f76d82a23f (patch) | |
tree | e45e153b1ba2ea212f38352eac729fd163655ff1 /test/SWIG/module-parens.py | |
parent | 0307a78b041c16b5e9ad60c19f669e856f32f49f (diff) | |
download | SCons-f6bd57cdfa43fb809688a45e8b5bb2f76d82a23f.zip SCons-f6bd57cdfa43fb809688a45e8b5bb2f76d82a23f.tar.gz SCons-f6bd57cdfa43fb809688a45e8b5bb2f76d82a23f.tar.bz2 |
Issue 2168: Mac OS X fixes for SWIG tests. (Greg Noel)
Diffstat (limited to 'test/SWIG/module-parens.py')
-rw-r--r-- | test/SWIG/module-parens.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/test/SWIG/module-parens.py b/test/SWIG/module-parens.py index 0d89ebe..3dabacf 100644 --- a/test/SWIG/module-parens.py +++ b/test/SWIG/module-parens.py @@ -29,6 +29,7 @@ Verify that we handle %module(directors="1") statements, both with and without white space before the opening parenthesis. """ +import os.path import TestSCons test = TestSCons.TestSCons() @@ -40,18 +41,35 @@ if not swig: python_include_dir = test.get_python_inc() +python_frameworks_flags = test.get_python_frameworks_flags() + +Python_h = os.path.join(python_include_dir, 'Python.h') +if not os.path.exists(Python_h): + test.skip_test('Can not find %s, skipping test.\n' % Python_h) + test.write(['SConstruct'], """\ -env = Environment(SWIGFLAGS = '-python', - CPPPATH=r"%(python_include_dir)s") +env = Environment(SWIGFLAGS = '-python -c++', + CPPPATH=r"%(python_include_dir)s", + FRAMEWORKS='%(python_frameworks_flags)s', + ) import sys if sys.version[0] == '1': # SWIG requires the -classic flag on pre-2.0 Python versions. env.Append(SWIGFLAGS = ' -classic') -env.SharedLibrary('test1.so', 'test1.i') -env.SharedLibrary('test2.so', 'test2.i') +env.LoadableModule('test1.so', ['test1.i', 'test1.cc']) +env.LoadableModule('test2.so', ['test2.i', 'test2.cc']) +env.Clean('.', ['test1_wrap.h', 'test2_wrap.h']) ### SEE NOTE BELOW """ % locals()) +# NOTE: For some reason, this test on OS X is unstable. The first time 'scons' +# is run, it works as expected. However, when 'scons' is run again, the +# 'test?_wrap.os' files are rebuilt. (When run a third time, it correctly +# determines that nothing is to be rebuilt.) When 'scons -c' is run, the +# 'test?_wrap.h' files are not removed, meaning that they are not identified +# by the emitter. Mentioning the two files in the SConscript file stabilizes +# the runs and makes the test reliable. When whatever that is causing this +# instability is chased down and cured, this hack should be removed. test.write(['test1.cc'], """\ int test1func() |