aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
Diffstat (limited to 'test cases')
-rw-r--r--test cases/cmake/12 generator expressions/subprojects/cmMod/CMakeLists.txt10
-rw-r--r--test cases/cmake/12 generator expressions/subprojects/cmMod/include/cmMod.hpp32
-rw-r--r--test cases/cmake/12 generator expressions/test.json5
-rw-r--r--test cases/common/26 find program/meson.build3
-rw-r--r--test cases/frameworks/6 gettext/data/meson.build1
-rw-r--r--test cases/frameworks/6 gettext/data2/meson.build1
-rw-r--r--test cases/java/9 jni/meson.build2
-rw-r--r--test cases/unit/99 install all targets/meson.build6
-rw-r--r--test cases/wayland/1 client/both.c11
-rw-r--r--test cases/wayland/1 client/client.c (renamed from test cases/wayland/1 client/main.c)4
-rw-r--r--test cases/wayland/1 client/local.c (renamed from test cases/wayland/3 local/main.c)0
-rw-r--r--test cases/wayland/1 client/meson.build38
-rw-r--r--test cases/wayland/1 client/server.c9
-rw-r--r--test cases/wayland/1 client/test.xml (renamed from test cases/wayland/3 local/test.xml)0
-rw-r--r--test cases/wayland/2 server/main.c9
-rw-r--r--test cases/wayland/2 server/meson.build16
-rw-r--r--test cases/wayland/3 local/meson.build11
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)