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 | |
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')
-rw-r--r-- | test/Java/swig-dependencies.py | 4 | ||||
-rw-r--r-- | test/SWIG/build-dir.py | 2 | ||||
-rw-r--r-- | test/SWIG/live.py | 18 | ||||
-rw-r--r-- | test/SWIG/module-parens.py | 26 | ||||
-rw-r--r-- | test/SWIG/noproxy.py | 2 | ||||
-rw-r--r-- | test/SWIG/remove-modules.py | 2 | ||||
-rw-r--r-- | test/SWIG/subdir.py | 2 |
7 files changed, 40 insertions, 16 deletions
diff --git a/test/Java/swig-dependencies.py b/test/Java/swig-dependencies.py index cc54180..f71ab31 100644 --- a/test/Java/swig-dependencies.py +++ b/test/Java/swig-dependencies.py @@ -35,13 +35,13 @@ import TestSCons test = TestSCons.TestSCons() swig = test.where_is('swig') - if not swig: test.skip_test('Can not find installed "swig", skipping test.\n') where_javac, java_version = test.java_where_javac() where_javah = test.java_where_javah() -where_jar = test.java_where_jar() +#where_jar = test.java_where_jar() + where_java_include=test.java_where_includes() test.subdir(['foo'], diff --git a/test/SWIG/build-dir.py b/test/SWIG/build-dir.py index 8f122af..85ad7f5 100644 --- a/test/SWIG/build-dir.py +++ b/test/SWIG/build-dir.py @@ -70,7 +70,7 @@ env = Environment(CPPPATH = [".", r'%(python_include_dir)s'], SWIGCXXFILESUFFIX = "_wrap.cpp", LDMODULEPREFIX='_', LDMODULESUFFIX='%(_dll)s', - FRAMEWORKSFLAGS='%(python_frameworks_flags)s') + FRAMEWORKS='%(python_frameworks_flags)s') import sys if sys.version[0] == '1': diff --git a/test/SWIG/live.py b/test/SWIG/live.py index 5070d8e..893d839 100644 --- a/test/SWIG/live.py +++ b/test/SWIG/live.py @@ -39,7 +39,7 @@ import TestSCons if sys.platform == 'win32': _dll = '.dll' else: - _dll = '.so' + _dll = '.so' test = TestSCons.TestSCons() @@ -52,19 +52,24 @@ python = test.get_platform_python() _python_ = test.get_quoted_platform_python() - # handle testing on other platforms: ldmodule_prefix = '_' python_include_dir = test.get_python_inc() 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) -python_frameworks_flags = test.get_python_frameworks_flags() - +python_frameworks = test.get_python_frameworks_flags() + +# To test the individual Python versions on OS X, +# particularly versions installed in non-framework locations, +# we'll need something like this. +python_library_path = test.get_python_library_path() +if python_library_path: + python_library_path = 'File("""%s""")' % python_library_path + test.write("wrapper.py", """import os import string @@ -78,7 +83,8 @@ foo = Environment(SWIGFLAGS='-python', CPPPATH='%(python_include_dir)s/', LDMODULEPREFIX='%(ldmodule_prefix)s', LDMODULESUFFIX='%(_dll)s', - FRAMEWORKSFLAGS='%(python_frameworks_flags)s', + FRAMEWORKS='%(python_frameworks)s', + #LIBS=%(python_library_path)s, ) import sys 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() diff --git a/test/SWIG/noproxy.py b/test/SWIG/noproxy.py index 8b0adb0..edbffb1 100644 --- a/test/SWIG/noproxy.py +++ b/test/SWIG/noproxy.py @@ -71,7 +71,7 @@ foo = Environment(SWIGFLAGS=['-python', '-noproxy'], CPPPATH='%(python_include_dir)s', LDMODULEPREFIX='%(ldmodule_prefix)s', LDMODULESUFFIX='%(_dll)s', - FRAMEWORKSFLAGS='%(python_frameworks_flags)s', + FRAMEWORKS='%(python_frameworks_flags)s', ) swig = foo.Dictionary('SWIG') diff --git a/test/SWIG/remove-modules.py b/test/SWIG/remove-modules.py index 5f15dcf..ca681ea 100644 --- a/test/SWIG/remove-modules.py +++ b/test/SWIG/remove-modules.py @@ -72,7 +72,7 @@ foo = Environment(SWIGFLAGS='-python', CPPPATH='%(python_include_dir)s', LDMODULEPREFIX='%(ldmodule_prefix)s', LDMODULESUFFIX='%(_dll)s', - FRAMEWORKSFLAGS='%(python_frameworks_flags)s', + FRAMEWORKS='%(python_frameworks_flags)s', ) import sys diff --git a/test/SWIG/subdir.py b/test/SWIG/subdir.py index 4905d3e..f96b706 100644 --- a/test/SWIG/subdir.py +++ b/test/SWIG/subdir.py @@ -70,7 +70,7 @@ env = Environment(SWIGFLAGS='-python', CPPPATH='%(python_include_dir)s/', LDMODULEPREFIX='%(ldmodule_prefix)s', LDMODULESUFFIX='%(_dll)s', - FRAMEWORKSFLAGS='%(python_frameworks_flags)s', + FRAMEWORKS='%(python_frameworks_flags)s', ) import sys |