mirror of
https://code.videolan.org/rist/librist.git
synced 2026-07-04 15:06:53 +00:00
ci/test: source cmocka via meson wrap so srp_unit_test always builds
srp_unit_test had been silently skipping in test-ubuntu because the runner image (libplacebo-ubuntu-jammy) ships without libcmocka-dev and does not give the CI user write access to /var/lib/apt/lists, so an in-script apt-get install cannot fix it. The silent skip is how the SRP fixture drift reported in #215 reached a release tag. Switch the meson detection from cc.find_library('cmocka', required: false) to dependency('cmocka', required: false, fallback: ['cmocka', 'cmocka_dep']) and add subprojects/cmocka.wrap pointing at WrapDB cmocka_1.1.8-1. When the runner image has cmocka the system copy is used; otherwise meson builds it as a subproject. Existing .gitignore rules (/subprojects/* with !*.wrap) keep the fetched source out of the tree. srp_unit's link line now picks up bcrypt on Windows because random.c calls BCryptGenRandom; the main librist target was already pulling it in via the top-level deps list, but srp_unit links random.c directly. Drop the broken apt-get line from the test-ubuntu script and add retry: 2 to both test jobs to absorb the simple+multicast environmental flake that surfaces on the shared runner regardless of branch.
This commit is contained in:
@@ -64,7 +64,13 @@ test-ubuntu:
|
||||
extends:
|
||||
- .ubuntu-amd64-jammy
|
||||
needs: ["build-ubuntu"]
|
||||
# simple+multicast cases are environmentally flaky on the shared
|
||||
# runner (UDP/IGMP timing); retry covers transient failures.
|
||||
retry: 2
|
||||
script:
|
||||
# cmocka comes from subprojects/cmocka.wrap when the runner image
|
||||
# does not ship libcmocka-dev; #215 used to slip silently because
|
||||
# the meson check skipped srp_unit_test entirely.
|
||||
- meson build --buildtype release -Db_sanitize=address,undefined
|
||||
- cd build && meson test --print-errorlogs
|
||||
dependencies:
|
||||
@@ -98,6 +104,7 @@ test-win64:
|
||||
extends: .debian-amd64-common
|
||||
needs: ["build-win64"]
|
||||
allow_failure: true
|
||||
retry: 2
|
||||
dependencies:
|
||||
- build-win64
|
||||
script:
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
[wrap-file]
|
||||
directory = cmocka-1.1.8
|
||||
source_url = https://cmocka.org/files/1.1/cmocka-1.1.8.tar.xz
|
||||
source_filename = cmocka-1.1.8.tar.xz
|
||||
source_hash = 58435b558766d7f4c729ba163bdf3aec38bed3bc766dab684e3526ed0aa7c780
|
||||
patch_filename = cmocka_1.1.8-1_patch.zip
|
||||
patch_url = https://wrapdb.mesonbuild.com/v2/cmocka_1.1.8-1/get_patch
|
||||
patch_hash = ed475edc7c511d531bf0b14e6743d124f048eb00225c52fce2a8f196bd29a345
|
||||
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/cmocka_1.1.8-1/cmocka-1.1.8.tar.xz
|
||||
wrapdb_version = 1.1.8-1
|
||||
|
||||
[provide]
|
||||
cmocka = cmocka_dep
|
||||
@@ -1,13 +1,17 @@
|
||||
cmocka = meson.get_compiler('c').find_library('cmocka', required: false)
|
||||
cmocka = dependency('cmocka', required: false, fallback: ['cmocka', 'cmocka_dep'])
|
||||
|
||||
if cmocka.found()
|
||||
if have_srp
|
||||
srp_unit_deps = [threads, cmocka, crypto_deps]
|
||||
if host_machine.system() == 'windows'
|
||||
srp_unit_deps += cc.find_library('bcrypt') # random.c calls BCryptGenRandom
|
||||
endif
|
||||
srp_unit = executable('srp_unit', rev_target,
|
||||
'srp_examples.c',
|
||||
'../../../contrib/pthread-shim.c',
|
||||
'../../../src/crypto/random.c',
|
||||
include_directories : inc,
|
||||
dependencies : [threads, cmocka,crypto_deps],
|
||||
dependencies : srp_unit_deps,
|
||||
)
|
||||
|
||||
test('srp_unit_test', srp_unit, suite:['unit'])
|
||||
|
||||
Reference in New Issue
Block a user