openwrt/package/system/apk/patches/0002-meson-add-tests-option.patch
Robert Marko f02df14a99 apk: disable tests
Currently if the host system has cmocka installed it will leak the host
path and try to use the host cmocka and build tests.

This will obviously fail, so backport upstream commit allowing disabling
of tests and disable building them.

Fixes: openwrt/packages#25456
Link: https://github.com/openwrt/openwrt/pull/17297
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-12-18 11:42:25 +01:00

53 lines
1.9 KiB
Diff

From a6180e4cfa1a98d361ffdce9e48857504997fbe9 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Tue, 3 Dec 2024 18:12:58 -0800
Subject: [PATCH] meson: add tests option
Allows disabling tests when not desired.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson_options.txt | 1 +
test/meson.build | 10 +++++++---
test/unit/meson.build | 2 +-
3 files changed, 9 insertions(+), 4 deletions(-)
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -6,6 +6,7 @@ option('docs', description: 'Build manpa
option('help', description: 'Build help into apk binaries, needs lua', type: 'feature', value: 'auto')
option('lua', description: 'Build luaapk (lua bindings)', type: 'feature', value: 'auto')
option('lua_version', description: 'Lua version to build against', type: 'string', value: '5.3')
+option('tests', description: 'Build tests', type: 'feature', value: 'auto')
option('url_backend', description: 'URL backend', type: 'combo', choices: ['libfetch', 'wget'], value: 'libfetch')
option('uvol_db_target', description: 'Default target for uvol database layer', type: 'string')
option('zstd', description: 'Build with zstd support', type: 'boolean', value: true)
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,10 +1,14 @@
+enum_sh = find_program('enum.sh', required: get_option('tests'))
+solver_sh = find_program('solver.sh', required: get_option('tests'))
+
+if not enum_sh.found() or not solver_sh.found()
+ subdir_done()
+endif
+
cur_dir = meson.current_source_dir()
env = environment()
env.set('APK', apk_exe.full_path())
-enum_sh = files('enum.sh')
-solver_sh = files('solver.sh')
-
subdir('unit')
foreach t : run_command(enum_sh, 'shell', check: true).stdout().strip().split(' ')
--- a/test/unit/meson.build
+++ b/test/unit/meson.build
@@ -1,4 +1,4 @@
-cmocka_dep = dependency('cmocka', required: false)
+cmocka_dep = dependency('cmocka', required: get_option('tests'))
if cmocka_dep.found()