diff options
Diffstat (limited to 'test cases')
17 files changed, 116 insertions, 42 deletions
diff --git a/test cases/cmake/12 generator expressions/subprojects/cmMod/CMakeLists.txt b/test cases/cmake/12 generator expressions/subprojects/cmMod/CMakeLists.txt index dc4f9e4..27b3721 100644 --- a/test cases/cmake/12 generator expressions/subprojects/cmMod/CMakeLists.txt +++ b/test cases/cmake/12 generator expressions/subprojects/cmMod/CMakeLists.txt @@ -12,6 +12,10 @@ target_compile_options(cmModLib INTERFACE "-DCMAKE_FLAG_REQUIRED_A" INTERFACE $<$<AND:1,$<STREQUAL:asd,$<LOWER_CASE:AsD>>,$<NOT:$<EQUAL:4,2>>>:-DCMAKE_FLAG_REQUIRED_B> INTERFACE $<$<VERSION_LESS:1.2.3,2.1.0>:-DCMAKE_FLAG_REQUIRED_C> + INTERFACE $<IF:$<NOT:$<BOOL:OFF>>,-DCMAKE_TRUE_FLAG,-DCMAKE_FALSE_FLAG> + INTERFACE $<IF:$<TARGET_EXISTS:cmModLib>,-DCMAKE_TGT_EXISTS,-DCMAKE_TGT_NEXISTS> + INTERFACE $<IF:$<TARGET_PROPERTY:IMPORTED_NO_SONAME>,-DCMAKE_PROP1_OK,-DCMAKE_PROP1_ERROR> + INTERFACE $<IF:$<TARGET_PROPERTY:cmModLib,IMPORT_SUFFIX>,-DCMAKE_PROP2_ERROR,-DCMAKE_PROP2_OK> ) target_include_directories(cmModLib INTERFACE @@ -19,4 +23,10 @@ target_include_directories(cmModLib INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> ) +set_target_properties(cmModLib + PROPERTIES + IMPORTED_NO_SONAME 1 + IMPORT_SUFFIX 0 +) + target_compile_definitions(cmModLib INTERFACE -DCMAKE_COMPILER_DEFINE_STR="compDef") diff --git a/test cases/cmake/12 generator expressions/subprojects/cmMod/include/cmMod.hpp b/test cases/cmake/12 generator expressions/subprojects/cmMod/include/cmMod.hpp index 1f00107..416e5bb 100644 --- a/test cases/cmake/12 generator expressions/subprojects/cmMod/include/cmMod.hpp +++ b/test cases/cmake/12 generator expressions/subprojects/cmMod/include/cmMod.hpp @@ -18,6 +18,38 @@ #error "The flag CMAKE_FLAG_ERROR_A was set" #endif +#ifndef CMAKE_TRUE_FLAG +#error "The flag CMAKE_TRUE_FLAG was not set" +#endif + +#ifdef CMAKE_FALSE_FLAG +#error "The flag CMAKE_FALSE_FLAG was set" +#endif + +#ifndef CMAKE_TGT_EXISTS +#error "The flag CMAKE_TGT_EXISTS was not set" +#endif + +#ifdef CMAKE_TGT_NEXISTS +#error "The flag CMAKE_TGT_NEXISTS was set" +#endif + +#ifndef CMAKE_PROP1_OK +#error "The flag CMAKE_PROP1_OK was not set" +#endif + +#ifdef CMAKE_PROP1_ERROR +#error "The flag CMAKE_PROP1_ERROR was set" +#endif + +#ifndef CMAKE_PROP2_OK +#error "The flag CMAKE_PROP2_OK was not set" +#endif + +#ifdef CMAKE_PROP2_ERROR +#error "The flag CMAKE_PROP2_ERROR was set" +#endif + class cmModClass { private: std::string str; diff --git a/test cases/cmake/12 generator expressions/test.json b/test cases/cmake/12 generator expressions/test.json new file mode 100644 index 0000000..faf1ff8 --- /dev/null +++ b/test cases/cmake/12 generator expressions/test.json @@ -0,0 +1,5 @@ +{ + "tools": { + "cmake": ">=3.19" + } +} diff --git a/test cases/common/26 find program/meson.build b/test cases/common/26 find program/meson.build index 3b59caa..a083d69 100644 --- a/test cases/common/26 find program/meson.build +++ b/test cases/common/26 find program/meson.build @@ -25,6 +25,9 @@ assert(not prog.found(), 'Version should be too old') prog = find_program('print-version.py', version : '>=1.0') assert(prog.found(), 'Program version should match') +prog = find_program('print-version.py') +assert(prog.version() == '1.0', 'Program version should be detectable') + prog = find_program('print-version-with-prefix.py', version : '>=1.0') assert(prog.found(), 'Program version should match') diff --git a/test cases/frameworks/6 gettext/data/meson.build b/test cases/frameworks/6 gettext/data/meson.build index 1afb403..698eeec 100644 --- a/test cases/frameworks/6 gettext/data/meson.build +++ b/test cases/frameworks/6 gettext/data/meson.build @@ -4,6 +4,7 @@ i18n.merge_file( output: '@BASENAME@', type: 'desktop', po_dir: '../po', + data_dirs: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'applications') ) diff --git a/test cases/frameworks/6 gettext/data2/meson.build b/test cases/frameworks/6 gettext/data2/meson.build index b8c90a1..9a992c9 100644 --- a/test cases/frameworks/6 gettext/data2/meson.build +++ b/test cases/frameworks/6 gettext/data2/meson.build @@ -3,6 +3,7 @@ i18n.merge_file( output: 'test.plugin', type: 'desktop', po_dir: '../po', + data_dirs: '../po', args: ['--keyword=Description'], install: true, install_dir: join_paths(get_option('datadir'), 'applications') diff --git a/test cases/java/9 jni/meson.build b/test cases/java/9 jni/meson.build index 65d7ff6..1239e19 100644 --- a/test cases/java/9 jni/meson.build +++ b/test cases/java/9 jni/meson.build @@ -13,7 +13,7 @@ javamod = import('java') java = find_program('java') -jni_dep = dependency('jni', version : '>=1.8') +jni_dep = dependency('jni', version : '>=1.8', modules: ['jvm', 'awt']) # generate native headers subdir('src/com/mesonbuild') diff --git a/test cases/unit/99 install all targets/meson.build b/test cases/unit/99 install all targets/meson.build index 94bd1fe..3d131e6 100644 --- a/test cases/unit/99 install all targets/meson.build +++ b/test cases/unit/99 install all targets/meson.build @@ -43,6 +43,12 @@ both_libraries('both', 'lib.c', install: true, ) +# Unversioned .so file should have 'devel' tag, others should have 'runtime' tag +shared_library('versioned_shared', 'lib.c', + install: true, + version: '1.2.3', +) + # Those files should have custom tag install_data('bar-custom.txt', install_dir: get_option('datadir'), diff --git a/test cases/wayland/1 client/both.c b/test cases/wayland/1 client/both.c new file mode 100644 index 0000000..b6e1bab --- /dev/null +++ b/test cases/wayland/1 client/both.c @@ -0,0 +1,11 @@ +#include "viewporter-client-protocol.h" +#include "viewporter-server-protocol.h" + +int main() { +#if defined(VIEWPORTER_CLIENT_PROTOCOL_H) && \ + defined(VIEWPORTER_SERVER_PROTOCOL_H) + return 0; +#else + return 1; +#endif +} diff --git a/test cases/wayland/1 client/main.c b/test cases/wayland/1 client/client.c index 6aca80d..4966721 100644 --- a/test cases/wayland/1 client/main.c +++ b/test cases/wayland/1 client/client.c @@ -2,8 +2,8 @@ int main() { #ifdef XDG_SHELL_CLIENT_PROTOCOL_H - return 0; + return 0; #else - return 1; + return 1; #endif } diff --git a/test cases/wayland/3 local/main.c b/test cases/wayland/1 client/local.c index 97bfa56..97bfa56 100644 --- a/test cases/wayland/3 local/main.c +++ b/test cases/wayland/1 client/local.c diff --git a/test cases/wayland/1 client/meson.build b/test cases/wayland/1 client/meson.build index 7ca868b..cb13db2 100644 --- a/test cases/wayland/1 client/meson.build +++ b/test cases/wayland/1 client/meson.build @@ -5,12 +5,44 @@ if not wl_protocols_dep.found() error('MESON_SKIP_TEST: wayland-protocols not installed') endif -wl_dep = dependency('wayland-client') +wl_client_dep = dependency('wayland-client') +wl_server_dep = dependency('wayland-server') wl_mod = import('unstable-wayland') +fs = import('fs') +# Client side only xdg_shell_xml = wl_mod.find_protocol('xdg-shell') xdg_shell = wl_mod.scan_xml(xdg_shell_xml) +assert(xdg_shell.length() == 2) +assert(fs.name(xdg_shell[0].full_path()) == 'xdg-shell-protocol.c') +assert(fs.name(xdg_shell[1].full_path()) == 'xdg-shell-client-protocol.h') +exe = executable('client', 'client.c', xdg_shell, dependencies : wl_client_dep) +test('client', exe) -exe = executable('client', 'main.c', xdg_shell, dependencies : wl_dep) +# Server side only +presentation_time_xml = wl_mod.find_protocol('presentation-time') +presentation_time = wl_mod.scan_xml(presentation_time_xml, client : false, server : true) +assert(presentation_time.length() == 2) +assert(fs.name(presentation_time[0].full_path()) == 'presentation-time-protocol.c') +assert(fs.name(presentation_time[1].full_path()) == 'presentation-time-server-protocol.h') +exe = executable('server', 'server.c', presentation_time, dependencies : wl_server_dep) +test('server', exe) -test('client', exe) +# Both sides +viewporter_xml = wl_mod.find_protocol('viewporter') +viewporter = wl_mod.scan_xml(viewporter_xml, client : true, server : true) +assert(viewporter.length() == 3) +assert(fs.name(viewporter[0].full_path()) == 'viewporter-protocol.c') +assert(fs.name(viewporter[1].full_path()) == 'viewporter-client-protocol.h') +assert(fs.name(viewporter[2].full_path()) == 'viewporter-server-protocol.h') +exe = executable('both', 'both.c', viewporter, dependencies : [wl_client_dep, wl_server_dep]) +test('both', exe) + +# Local xml +xmls = files('test.xml') +gen = wl_mod.scan_xml(xmls) +assert(gen.length() == 2) +assert(fs.name(gen[0].full_path()) == 'test-protocol.c') +assert(fs.name(gen[1].full_path()) == 'test-client-protocol.h') +exe = executable('local', 'local.c', gen, dependencies : wl_client_dep) +test('local', exe) diff --git a/test cases/wayland/1 client/server.c b/test cases/wayland/1 client/server.c new file mode 100644 index 0000000..e073a7b --- /dev/null +++ b/test cases/wayland/1 client/server.c @@ -0,0 +1,9 @@ +#include "presentation-time-server-protocol.h" + +int main() { +#ifdef PRESENTATION_TIME_SERVER_PROTOCOL_H + return 0; +#else + return 1; +#endif +} diff --git a/test cases/wayland/3 local/test.xml b/test cases/wayland/1 client/test.xml index f3c6db1..f3c6db1 100644 --- a/test cases/wayland/3 local/test.xml +++ b/test cases/wayland/1 client/test.xml diff --git a/test cases/wayland/2 server/main.c b/test cases/wayland/2 server/main.c deleted file mode 100644 index 3307499..0000000 --- a/test cases/wayland/2 server/main.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "xdg-shell-server-protocol.h" - -int main() { -#ifdef XDG_SHELL_SERVER_PROTOCOL_H - return 0; -#else - return 1; -#endif -} diff --git a/test cases/wayland/2 server/meson.build b/test cases/wayland/2 server/meson.build deleted file mode 100644 index c93ff11..0000000 --- a/test cases/wayland/2 server/meson.build +++ /dev/null @@ -1,16 +0,0 @@ -project('wayland-test-server', 'c') - -wl_protocols_dep = dependency('wayland-protocols', required : false) -if not wl_protocols_dep.found() - error('MESON_SKIP_TEST: wayland-protocols not installed') -endif - -wl_dep = dependency('wayland-server') -wl_mod = import('unstable-wayland') - -xdg_shell_xml = wl_mod.find_protocol('xdg-shell') -xdg_shell = wl_mod.scan_xml(xdg_shell_xml, side : 'server') - -exe = executable('server', 'main.c', xdg_shell, dependencies : wl_dep) - -test('client', exe) diff --git a/test cases/wayland/3 local/meson.build b/test cases/wayland/3 local/meson.build deleted file mode 100644 index 7a470d6..0000000 --- a/test cases/wayland/3 local/meson.build +++ /dev/null @@ -1,11 +0,0 @@ -project('wayland-test-local', 'c') - -wl_dep = dependency('wayland-client') -wl_mod = import('unstable-wayland') - -xmls = files('test.xml') -gen = wl_mod.scan_xml(xmls) - -exe = executable('local', 'main.c', gen, dependencies : wl_dep) - -test('local', exe) |