aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2017-12-19 21:10:52 -0800
committerDylan Baker <dylan@pnwbakers.com>2018-01-06 13:49:34 -0800
commit0ec7dd5ac53b0a6955ecce65c011a5d06631bd94 (patch)
tree7f4566fcd01c8ad27a4b78fb5eaf23409bf7dde0
parent87742fd9f016873fcd9d91ef8bc4c3b1be925224 (diff)
downloadmeson-0ec7dd5ac53b0a6955ecce65c011a5d06631bd94.zip
meson-0ec7dd5ac53b0a6955ecce65c011a5d06631bd94.tar.gz
meson-0ec7dd5ac53b0a6955ecce65c011a5d06631bd94.tar.bz2
tests: Split objc and objc++ tests
This allows platforms that can compile one or the other (but not both) to run the tests that they can.
-rwxr-xr-xrun_project_tests.py15
-rw-r--r--test cases/objc/3 objc args/meson.build (renamed from test cases/objc/4 objc args/meson.build)0
-rw-r--r--test cases/objc/3 objc args/prog.m (renamed from test cases/objc/4 objc args/prog.m)0
-rw-r--r--test cases/objcpp/1 simple/meson.build (renamed from test cases/objc/3 objc++/meson.build)0
-rw-r--r--test cases/objcpp/1 simple/prog.mm (renamed from test cases/objc/3 objc++/prog.mm)0
-rw-r--r--test cases/objcpp/2 objc++ args/meson.build (renamed from test cases/objc/5 objc++ args/meson.build)0
-rw-r--r--test cases/objcpp/2 objc++ args/prog.mm (renamed from test cases/objc/5 objc++ args/prog.mm)0
7 files changed, 12 insertions, 3 deletions
diff --git a/run_project_tests.py b/run_project_tests.py
index 810f00e..68d2de5 100755
--- a/run_project_tests.py
+++ b/run_project_tests.py
@@ -447,20 +447,28 @@ def have_objc_compiler():
env = environment.Environment(None, build_dir, None, get_fake_options('/'), [])
try:
objc_comp = env.detect_objc_compiler(False)
- except:
+ except mesonlib.MesonException:
return False
if not objc_comp:
return False
try:
objc_comp.sanity_check(env.get_scratch_dir(), env)
+ except mesonlib.MesonException:
+ return False
+ return True
+
+def have_objcpp_compiler():
+ with AutoDeletedDir(tempfile.mkdtemp(prefix='b ', dir='.')) as build_dir:
+ env = environment.Environment(None, build_dir, None, get_fake_options('/'), [])
+ try:
objcpp_comp = env.detect_objcpp_compiler(False)
- except:
+ except mesonlib.MesonException:
return False
if not objcpp_comp:
return False
try:
objcpp_comp.sanity_check(env.get_scratch_dir(), env)
- except:
+ except mesonlib.MesonException:
return False
return True
@@ -487,6 +495,7 @@ def detect_tests_to_run():
('rust', 'rust', backend is not Backend.ninja or not shutil.which('rustc')),
('d', 'd', backend is not Backend.ninja or not have_d_compiler()),
('objective c', 'objc', backend not in (Backend.ninja, Backend.xcode) or mesonlib.is_windows() or not have_objc_compiler()),
+ ('objective c++', 'objcpp', backend not in (Backend.ninja, Backend.xcode) or mesonlib.is_windows() or not have_objcpp_compiler()),
('fortran', 'fortran', backend is not Backend.ninja or not shutil.which('gfortran')),
('swift', 'swift', backend not in (Backend.ninja, Backend.xcode) or not shutil.which('swiftc')),
('python3', 'python3', backend is not Backend.ninja),
diff --git a/test cases/objc/4 objc args/meson.build b/test cases/objc/3 objc args/meson.build
index 8887d96..8887d96 100644
--- a/test cases/objc/4 objc args/meson.build
+++ b/test cases/objc/3 objc args/meson.build
diff --git a/test cases/objc/4 objc args/prog.m b/test cases/objc/3 objc args/prog.m
index bfd686a..bfd686a 100644
--- a/test cases/objc/4 objc args/prog.m
+++ b/test cases/objc/3 objc args/prog.m
diff --git a/test cases/objc/3 objc++/meson.build b/test cases/objcpp/1 simple/meson.build
index 7d91884..7d91884 100644
--- a/test cases/objc/3 objc++/meson.build
+++ b/test cases/objcpp/1 simple/meson.build
diff --git a/test cases/objc/3 objc++/prog.mm b/test cases/objcpp/1 simple/prog.mm
index 927e810..927e810 100644
--- a/test cases/objc/3 objc++/prog.mm
+++ b/test cases/objcpp/1 simple/prog.mm
diff --git a/test cases/objc/5 objc++ args/meson.build b/test cases/objcpp/2 objc++ args/meson.build
index e0e34b0..e0e34b0 100644
--- a/test cases/objc/5 objc++ args/meson.build
+++ b/test cases/objcpp/2 objc++ args/meson.build
diff --git a/test cases/objc/5 objc++ args/prog.mm b/test cases/objcpp/2 objc++ args/prog.mm
index 3decaf2..3decaf2 100644
--- a/test cases/objc/5 objc++ args/prog.mm
+++ b/test cases/objcpp/2 objc++ args/prog.mm