Files
lix/tests/functional2/meson.build
T
eldritch horrors 46f99487de testing: use TAP for when running f2 from meson
this requires some hacks to make error reports visible, but hey. it's
better than no progress reports at all, and successful runs no longer
spew huge amounts of useless log output onto the developer's terminal

Change-Id: I9e4766b2f825a4ec451e117eb4609db65f328785
2026-02-21 16:36:44 +00:00

45 lines
1.6 KiB
Meson

xdist_opts = [
# auto number of workers, max 12 jobs
'-n', 'auto', '--maxprocesses=12',
# Distributes tests evenly at first and then, if workers run out of tests, they steal from a different worker
# This is useful here, due to differing durations of tests, especially when tests check timeout functionality
#
# grouping by module/file is disadventageous here too, as all lang tests are executed from the same module
# which would result in high run times for that single worker while everything else is bored
'--dist=worksteal',
]
# surprisingly, this actually works even if PATH is set to something before
# meson gets hold of it. neat!
functional2_env = environment()
# set the bin dir for us to know where to find the lix binaries for our declarative path
# without leaking all of PATH or env
functional2_env.set('NIX_BIN_DIR', fs.parent(nix.full_path()))
if build_test_shell != ''
functional2_env.set('BUILD_TEST_SHELL', build_test_shell)
endif
if build_test_env != ''
functional2_env.set('BUILD_TEST_ENV', build_test_env)
endif
functional2_env.set('system', host_system)
test(
'functional2',
bash,
args : [
# FIXME: meson does not capture tap error reports; we duplicate them to stderr which is *does* capture,
# --max-lines then lets us print most/all of them (cf https://github.com/mesonbuild/meson/issues/11185)
files('meson-tap-wrap.sh'),
python,
'-m', 'pytest',
'--tap',
xdist_opts,
meson.current_source_dir()
],
env : functional2_env,
depends : nix,
protocol : 'tap',
suite : 'installcheck',
timeout : 300,
)