summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz93@gmail.com>2024-07-15 17:19:42 -0400
committerEli Schwartz <eschwartz93@gmail.com>2024-07-15 23:43:10 -0400
commit2a8bb3b9f10f180c50930db92eaf23e8c4c9b81a (patch)
tree250e3df2741601cf169f85728a11841d1d296e54
parent2fd7d64a50aa4f8a76d5b9ca13f7d8f8f40b959c (diff)
downloadmeson-2a8bb3b9f10f180c50930db92eaf23e8c4c9b81a.tar.gz
tests: short-circuit tests that require cmake, faster
We have two ways of marking a test as skipped: - raise MESON_SKIP_TEST - declare that the tools it needs in test.json are unavailable Doing the former requires performing the configure stage including e.g. language setup. In several cases we weren't even getting this far anyway since we used both mechanisms (the cmake category has a category-wide skip for this, in fact). In some case, we were missing test.json declaring it skippable; add this.
-rw-r--r--test cases/cmake/11 cmake_module_path/meson.build4
-rw-r--r--test cases/cmake/22 cmake module/meson.build5
-rw-r--r--test cases/failing build/3 cmake subproject isolation/meson.build4
-rw-r--r--test cases/failing/109 cmake executable dependency/meson.build4
-rw-r--r--test cases/failing/109 cmake executable dependency/test.json2
-rw-r--r--test cases/failing/119 cmake subproject error/meson.build4
-rw-r--r--test cases/failing/119 cmake subproject error/test.json2
-rw-r--r--test cases/linuxlike/13 cmake dependency/meson.build5
-rw-r--r--test cases/linuxlike/13 cmake dependency/test.json5
-rw-r--r--test cases/osx/9 framework recasting/meson.build4
-rw-r--r--test cases/osx/9 framework recasting/test.json5
11 files changed, 12 insertions, 32 deletions
diff --git a/test cases/cmake/11 cmake_module_path/meson.build b/test cases/cmake/11 cmake_module_path/meson.build
index e20193696..2e835fba1 100644
--- a/test cases/cmake/11 cmake_module_path/meson.build
+++ b/test cases/cmake/11 cmake_module_path/meson.build
@@ -3,10 +3,6 @@
project('user CMake find_package module using cmake_module_path', ['c', 'cpp'],
meson_version: '>= 0.55.0')
-if not find_program('cmake', required: false).found()
- error('MESON_SKIP_TEST cmake binary not available.')
-endif
-
# NOTE: can't request Python3 via dependency('Python3', method: 'cmake')
# Meson intercepts and wants "method: auto"
diff --git a/test cases/cmake/22 cmake module/meson.build b/test cases/cmake/22 cmake module/meson.build
index 68f9993a6..581804f66 100644
--- a/test cases/cmake/22 cmake module/meson.build
+++ b/test cases/cmake/22 cmake module/meson.build
@@ -4,11 +4,6 @@ if build_machine.system() == 'cygwin'
error('MESON_SKIP_TEST CMake is broken on Cygwin.')
endif
-cmake_bin = find_program('cmake', required: false)
-if not cmake_bin.found()
- error('MESON_SKIP_TEST CMake not installed.')
-endif
-
cc = meson.get_compiler('c')
if cc.get_id() == 'clang-cl' and meson.backend() == 'ninja' and build_machine.system() == 'windows'
error('MESON_SKIP_TEST CMake installation nor operational for vs2017 clangclx64ninja')
diff --git a/test cases/failing build/3 cmake subproject isolation/meson.build b/test cases/failing build/3 cmake subproject isolation/meson.build
index e60633595..2351ec54b 100644
--- a/test cases/failing build/3 cmake subproject isolation/meson.build
+++ b/test cases/failing build/3 cmake subproject isolation/meson.build
@@ -1,9 +1,5 @@
project('subproject isolation', ['c', 'cpp'])
-if not find_program('cmake', required: false).found()
- error('MESON_SKIP_TEST CMake is not installed')
-endif
-
incdir = meson.source_root() / 'incDir'
cm = import('cmake')
diff --git a/test cases/failing/109 cmake executable dependency/meson.build b/test cases/failing/109 cmake executable dependency/meson.build
index 48d8fcbb6..0fc0f9b6a 100644
--- a/test cases/failing/109 cmake executable dependency/meson.build
+++ b/test cases/failing/109 cmake executable dependency/meson.build
@@ -1,9 +1,5 @@
project('cmake-executable-dependency', 'c')
-if not find_program('cmake', required: false).found()
- error('MESON_SKIP_TEST CMake is not installed')
-endif
-
cmake = import('cmake')
cmlib = cmake.subproject('cmlib')
maind = cmlib.dependency('main')
diff --git a/test cases/failing/109 cmake executable dependency/test.json b/test cases/failing/109 cmake executable dependency/test.json
index f7c477555..92a6ee1c5 100644
--- a/test cases/failing/109 cmake executable dependency/test.json
+++ b/test cases/failing/109 cmake executable dependency/test.json
@@ -1,7 +1,7 @@
{
"stdout": [
{
- "line": "test cases/failing/109 cmake executable dependency/meson.build:9:14: ERROR: main is an executable and does not support the dependency() method. Use target() instead."
+ "line": "test cases/failing/109 cmake executable dependency/meson.build:5:14: ERROR: main is an executable and does not support the dependency() method. Use target() instead."
}
],
"tools": {
diff --git a/test cases/failing/119 cmake subproject error/meson.build b/test cases/failing/119 cmake subproject error/meson.build
index a308239fc..9304af7e8 100644
--- a/test cases/failing/119 cmake subproject error/meson.build
+++ b/test cases/failing/119 cmake subproject error/meson.build
@@ -1,8 +1,4 @@
project('cmake-executable-dependency')
-if not find_program('cmake', required: false).found()
- error('MESON_SKIP_TEST CMake is not installed')
-endif
-
cmake = import('cmake')
cmlib = cmake.subproject('cmlib')
diff --git a/test cases/failing/119 cmake subproject error/test.json b/test cases/failing/119 cmake subproject error/test.json
index 625e45175..d8271a22a 100644
--- a/test cases/failing/119 cmake subproject error/test.json
+++ b/test cases/failing/119 cmake subproject error/test.json
@@ -1,7 +1,7 @@
{
"stdout": [
{
- "line": "test cases/failing/119 cmake subproject error/meson.build:8:14: ERROR: Failed to configure the CMake subproject: Fancy error message"
+ "line": "test cases/failing/119 cmake subproject error/meson.build:4:14: ERROR: Failed to configure the CMake subproject: Fancy error message"
}
],
"tools": {
diff --git a/test cases/linuxlike/13 cmake dependency/meson.build b/test cases/linuxlike/13 cmake dependency/meson.build
index f612e1d52..812dcf9c5 100644
--- a/test cases/linuxlike/13 cmake dependency/meson.build
+++ b/test cases/linuxlike/13 cmake dependency/meson.build
@@ -2,10 +2,7 @@
# due to use of setup_env.json
project('external CMake dependency', ['c', 'cpp'])
-cmake = find_program('cmake', required: false)
-if not cmake.found()
- error('MESON_SKIP_TEST cmake binary not available.')
-endif
+cmake = find_program('cmake')
# Zlib is probably on all dev machines.
diff --git a/test cases/linuxlike/13 cmake dependency/test.json b/test cases/linuxlike/13 cmake dependency/test.json
index 484ce202c..208b59193 100644
--- a/test cases/linuxlike/13 cmake dependency/test.json
+++ b/test cases/linuxlike/13 cmake dependency/test.json
@@ -10,5 +10,8 @@
{
"line": " ['CMMesonTESTf1::evil_non_standard_target']"
}
- ]
+ ],
+ "tools": {
+ "cmake": ">=3.11"
+ }
}
diff --git a/test cases/osx/9 framework recasting/meson.build b/test cases/osx/9 framework recasting/meson.build
index bf8a5e63a..83fe19ed0 100644
--- a/test cases/osx/9 framework recasting/meson.build
+++ b/test cases/osx/9 framework recasting/meson.build
@@ -1,9 +1,5 @@
project('framework recasting', 'c', 'cpp')
-if not find_program('cmake', required: false).found()
- error('MESON_SKIP_TEST cmake binary not available.')
-endif
-
x = dependency('OpenAL', method: 'cmake')
y = executable('tt', files('main.cpp'), dependencies: x)
diff --git a/test cases/osx/9 framework recasting/test.json b/test cases/osx/9 framework recasting/test.json
new file mode 100644
index 000000000..77003c4dc
--- /dev/null
+++ b/test cases/osx/9 framework recasting/test.json
@@ -0,0 +1,5 @@
+{
+ "tools": {
+ "cmake": ">=3.11"
+ }
+}