diff options
Diffstat (limited to 'test cases')
16 files changed, 66 insertions, 25 deletions
diff --git a/test cases/common/135 generated assembly/square-arm.S.in b/test cases/common/135 generated assembly/square-arm.S.in index 168c980a8..d2fb7ac20 100644 --- a/test cases/common/135 generated assembly/square-arm.S.in +++ b/test cases/common/135 generated assembly/square-arm.S.in @@ -2,8 +2,8 @@ .text .globl SYMBOL_NAME(square_unsigned) -/* Only supported on Linux with GAS */ -# ifdef __linux__ +/* Only supported with GAS */ +# if defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) .type square_unsigned,%function #endif diff --git a/test cases/common/135 generated assembly/square-x86.S.in b/test cases/common/135 generated assembly/square-x86.S.in index 19dd9f580..ee77b81be 100644 --- a/test cases/common/135 generated assembly/square-x86.S.in +++ b/test cases/common/135 generated assembly/square-x86.S.in @@ -21,8 +21,8 @@ END .text .globl SYMBOL_NAME(square_unsigned) -/* Only supported on Linux with GAS */ -# ifdef __linux__ +/* Only supported with GAS */ +# if defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) .type square_unsigned,@function # endif diff --git a/test cases/common/135 generated assembly/square-x86_64.S.in b/test cases/common/135 generated assembly/square-x86_64.S.in index 0834f1662..856af137e 100644 --- a/test cases/common/135 generated assembly/square-x86_64.S.in +++ b/test cases/common/135 generated assembly/square-x86_64.S.in @@ -18,8 +18,8 @@ END .text .globl SYMBOL_NAME(square_unsigned) -/* Only supported on Linux with GAS */ -# ifdef __linux__ +/* Only supported with GAS */ +# if defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) .type square_unsigned,@function # endif diff --git a/test cases/common/140 get define/meson.build b/test cases/common/140 get define/meson.build index e23b7dedb..fd8717755 100644 --- a/test cases/common/140 get define/meson.build +++ b/test cases/common/140 get define/meson.build @@ -19,6 +19,19 @@ foreach lang : ['c', 'cpp'] elif host_system == 'haiku' d = cc.get_define('__HAIKU__') assert(d == '1', '__HAIKU__ value is @0@ instead of 1'.format(d)) + elif host_system == 'freebsd' + # the __FreeBSD__ define will be equal to the major version of the release + # (ex, in FreeBSD 11.x, __FreeBSD__ == 11). To make the test robust when + # being run on various versions of FreeBSD, just test that the define is + # set. + d = cc.get_define('__FreeBSD__') + assert(d != '', '__FreeBSD__ value is unset') + elif host_system == 'dragonfly' + d = cc.get_define('__DragonFly__') + assert(d == '1', '__DragonFly__ value is @0@ instead of 1'.format(d)) + elif host_system == 'netbsd' + d = cc.get_define('__NetBSD__') + assert(d == '1', '__NetBSD__ value is @0@ instead of 1'.format(d)) else error('Please report a bug and help us improve support for this platform') endif @@ -28,8 +41,16 @@ foreach lang : ['c', 'cpp'] # found in the compiler's default search path, GCC inserts an extra comment # between the delimiter and the define which causes a parsing error. # https://github.com/mesonbuild/meson/issues/1726 - ver = cc.get_define('ZLIB_VER_MAJOR', prefix : '#include <zlib.h>') - assert(ver == '1', 'ZLIB_VER_MAJOR value is "@0@" instead of "1"'.format(ver)) + if host_machine.system() == 'netbsd' + # NetBSD's zlib doesn't is version 1.2.3 and doesn't have a + # ZLIB_VER_MAJOR, but it does have a ZLIB_VERSION (which is a string), so + # check the first non-quote character of that. + ver = cc.get_define('ZLIB_VERSION', prefix : '#include <zlib.h>')[1] + assert(ver == '1', 'ZLIB_VERSION (major) value is "@0@" instead of "1"'.format(ver)) + else + ver = cc.get_define('ZLIB_VER_MAJOR', prefix : '#include <zlib.h>') + assert(ver == '1', 'ZLIB_VER_MAJOR value is "@0@" instead of "1"'.format(ver)) + endif endif # Check that an undefined value is empty. diff --git a/test cases/frameworks/15 llvm/meson.build b/test cases/frameworks/15 llvm/meson.build index 521100694..549adce90 100644 --- a/test cases/frameworks/15 llvm/meson.build +++ b/test cases/frameworks/15 llvm/meson.build @@ -20,17 +20,19 @@ foreach static : [true, false] 'llvm', modules : ['bitwriter', 'asmprinter', 'executionengine', 'target', 'mcjit', 'nativecodegen'], - required : true, + required : false, static : static, ) - name = static ? 'static' : 'dynamic' - executable( - 'sum-@0@'.format(name), - 'sum.c', - dependencies : [ - llvm_dep, dep_tinfo, - dependency('zlib'), - meson.get_compiler('c').find_library('dl', required : false), - ] - ) + if llvm_dep.found() + name = static ? 'static' : 'dynamic' + executable( + 'sum-@0@'.format(name), + 'sum.c', + dependencies : [ + llvm_dep, dep_tinfo, + dependency('zlib'), + meson.get_compiler('c').find_library('dl', required : false), + ] + ) + endif endforeach diff --git a/test cases/frameworks/17 mpi/meson.build b/test cases/frameworks/17 mpi/meson.build index 17acd713d..01ad61dc5 100644 --- a/test cases/frameworks/17 mpi/meson.build +++ b/test cases/frameworks/17 mpi/meson.build @@ -6,7 +6,10 @@ if build_machine.system() == 'windows' and cc.get_id() != 'msvc' error('MESON_SKIP_TEST: MPI not available on Windows without MSVC.') endif -mpic = dependency('mpi', language : 'c') +mpic = dependency('mpi', language : 'c', required : false) +if not mpic.found() + error('MESON_SKIP_TEST: MPI not found, skipping.') +endif exec = executable('exec', 'main.c', dependencies : [mpic]) diff --git a/test cases/frameworks/18 vulkan/meson.build b/test cases/frameworks/18 vulkan/meson.build index 54f1d4746..e98854ebe 100644 --- a/test cases/frameworks/18 vulkan/meson.build +++ b/test cases/frameworks/18 vulkan/meson.build @@ -1,6 +1,9 @@ project('vulkan test', 'c') -vulkan_dep = dependency('vulkan') +vulkan_dep = dependency('vulkan', required : false) +if not vulkan_dep.found() + error('MESON_SKIP_TEST: vulkan not found.') +endif e = executable('vulkanprog', 'vulkanprog.c', dependencies : vulkan_dep) diff --git a/test cases/frameworks/2 gtest/meson.build b/test cases/frameworks/2 gtest/meson.build index 419f451b7..e5418e963 100644 --- a/test cases/frameworks/2 gtest/meson.build +++ b/test cases/frameworks/2 gtest/meson.build @@ -1,6 +1,9 @@ project('gtest', 'cpp') -gtest = dependency('gtest', main : true) +gtest = dependency('gtest', main : true, required : false) +if not gtest.found() + error('MESON_SKIP_TEST: gtest not installed.') +endif gtest_nomain = dependency('gtest', main : false) e = executable('testprog', 'test.cc', dependencies : gtest) diff --git a/test cases/frameworks/3 gmock/meson.build b/test cases/frameworks/3 gmock/meson.build index 341f9d749..516547fc7 100644 --- a/test cases/frameworks/3 gmock/meson.build +++ b/test cases/frameworks/3 gmock/meson.build @@ -3,8 +3,14 @@ project('gmock test', 'cpp') # Using gmock without gtest is a pain so just # don't support that then. -gtest = dependency('gtest', main : true) -gmock = dependency('gmock') +gtest = dependency('gtest', main : true, required : false) +if not gtest.found() + error('MESON_SKIP_TEST: gtest not installed.') +endif +gmock = dependency('gmock', required : false) +if not gmock.found() + error('MESON_SKIP_TEST: gmock not installed.') +endif e = executable('gmocktest', 'gmocktest.cc', dependencies : [gtest, gmock]) test('gmock test', e) diff --git a/test cases/objc/2 nsstring/meson.build b/test cases/objc/2 nsstring/meson.build index a877d7465..7f2483f4c 100644 --- a/test cases/objc/2 nsstring/meson.build +++ b/test cases/objc/2 nsstring/meson.build @@ -5,7 +5,10 @@ if host_machine.system() == 'darwin' elif host_machine.system() == 'cygwin' error('MESON_SKIP_TEST GNUstep is not packaged for Cygwin.') else - dep = dependency('gnustep') + dep = dependency('gnustep', required : false) + if not dep.found() + error('MESON_SKIP_TEST: GNUstep is not installed') + endif if host_machine.system() == 'linux' and meson.get_compiler('objc').get_id() == 'clang' error('MESON_SKIP_TEST: GNUstep is broken on Linux with Clang') endif diff --git a/test cases/objc/4 objc args/meson.build b/test cases/objc/3 objc args/meson.build index 8887d96bc..8887d96bc 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 bfd686a86..bfd686a86 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 7d9188471..7d9188471 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 927e8104e..927e8104e 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 e0e34b0f1..e0e34b0f1 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 3decaf230..3decaf230 100644 --- a/test cases/objc/5 objc++ args/prog.mm +++ b/test cases/objcpp/2 objc++ args/prog.mm |
