meson_options.txt had 47 options. Several were read but never set by
any workflow, script or doc, several only fed test-lane timeouts, and
enable-{tsan,asan,ubsan} duplicated b_sanitize. 47 -> 33.
Removed (behavior kept at the previous default everywhere):
- require-fts5 (configure now always errors on a SQLite without FTS5,
the old default), conan-generators-dir, cli11-cmake-path,
onnxruntime-cmake-path (Conan/CMake discovery under the build dir is
unchanged), split-debug.
- unit-timeout, integration-timeout, integration-ui-timeout,
integration-smoke-timeout, integration-daemon-timeout and stress-iters:
replaced by the same constants at their call sites (smoke keeps its
test-timeout-scale multiplier). Only meson/profiles/ci-fast.ini and
nightly-soak.ini set them, and nothing used those profiles; both go.
- enable-integration-services/-smoke and enable-daemon-integration:
folded into enable-integration-tests. Debug builds still register every
integration suite; nothing set the sub-toggles.
Kept, because third_party/symspell's meson.build reads them:
bench-timeout, enable-tsan and enable-asan. YAMS itself now derives all
sanitizer handling (extra flags, TSan runtime links, test timeouts) from
b_sanitize; setup.sh still mirrors its choice into enable-tsan/asan for
the submodule, and the CI ASan lane keeps -Denable-asan=true for the
same reason. enable-ubsan is a deprecated no-op (a warning if it
disagrees with b_sanitize) so build dirs configured with it still
regenerate; the UBSan lane passes only -Db_sanitize=undefined and still
gets -fno-sanitize-recover=all (standalone UBSan aborts; ASan+UBSan stays
recoverable, as before).
Conan: the without_* Boost list was applied only to iOS/Android. YAMS
uses Boost.Asio (header-only) and links only boost_system/boost_thread
on every platform (asio/ssl uses OpenSSL directly; no spawn/context), so
the list now applies everywhere. Debug Boost package on grim: 45 static
libraries / 229 MiB -> 10 / 6.8 MiB (Release: 45 / 30 MiB before).
Verified on grim: ./setup.sh Debug --no-tsan --with-tests reconfigures
an existing build/debug and builds; an existing build/release (configured
with -Denable-tsan/-Denable-asan) regenerates.
Signed-off-by: trvon <me@trevon.dev>
69 lines
2.3 KiB
Meson
69 lines
2.3 KiB
Meson
# Integration smoke tests built as a small, isolated binary (Catch2-based)
|
|
|
|
integration_smoke_srcs = []
|
|
|
|
if tests_has_cli11
|
|
integration_smoke_srcs += files('cli_config_smoke_catch2_test.cpp')
|
|
else
|
|
message('CLI11 not detected; skipping cli_config_smoke from integration smoke suite.')
|
|
endif
|
|
|
|
integration_smoke_srcs += files(
|
|
'add_command_sandbox_smoke_catch2_test.cpp',
|
|
'cli_transport_fallback_smoke_catch2_test.cpp',
|
|
'daemon_embedded_streaming_smoke_catch2_test.cpp',
|
|
'graph_command_sandbox_smoke_catch2_test.cpp',
|
|
'integrity_auto_repair_smoke_catch2_test.cpp',
|
|
'search_graph_ux_smoke_catch2_test.cpp',
|
|
'smoke_link_catch2_test.cpp',
|
|
'storage_compression_policy_builder_smoke_catch2_test.cpp',
|
|
'storage_compression_smoke_catch2_test.cpp',
|
|
)
|
|
|
|
if tests_has_cli
|
|
integration_smoke_srcs += files(
|
|
'cli_subprocess_segfault_regression_smoke_catch2_test.cpp',
|
|
'daemon_cli_start_status_regression_smoke_catch2_test.cpp',
|
|
'daemon_embeddings_regression_smoke_catch2_test.cpp',
|
|
'daemon_ingestion_reliability_smoke_catch2_test.cpp',
|
|
'mcp_doctor_positive_smoke_catch2_test.cpp',
|
|
'pdf_search_smoke_catch2_test.cpp',
|
|
)
|
|
else
|
|
message('yams_cli dependency unavailable; skipping CLI-driven smoke tests.')
|
|
endif
|
|
|
|
dbg = (get_option('buildtype') == 'debug')
|
|
if (get_option('enable-integration-tests') or dbg) and integration_smoke_srcs.length() > 0 and catch2_dep.found()
|
|
smoke_test_args = []
|
|
if _test_thread_sanitizer
|
|
smoke_test_args += ['~[mcpdocopsfixture]']
|
|
endif
|
|
smoke_test_timeout = 600 * _test_timeout_scale
|
|
|
|
integ_exe = executable('yams_integration_smoke_tests',
|
|
integration_smoke_srcs + files('test_main_smoke_catch2.cpp'),
|
|
include_directories: incs,
|
|
dependencies: [catch2_dep, test_deps, dependency('yams_daemon_client_embedded')],
|
|
cpp_args: ['-DYAMS_TESTING=1', _test_timeout_cpp_arg],
|
|
install: false,
|
|
)
|
|
|
|
test('integration_smoke', integ_exe,
|
|
suite: ['integration', 'isolated'],
|
|
args: smoke_test_args,
|
|
env: {
|
|
'YAMS_TEST_SAFE_SINGLE_INSTANCE': '1',
|
|
'YAMS_DISABLE_VECTORS': '1',
|
|
'TSAN_OPTIONS': _test_tsan_options,
|
|
},
|
|
is_parallel: false,
|
|
timeout: smoke_test_timeout,
|
|
)
|
|
else
|
|
if not catch2_dep.found()
|
|
message('integration_smoke suite disabled (Catch2 not found).')
|
|
else
|
|
message('integration_smoke suite disabled (enable with -Denable-integration-tests=true).')
|
|
endif
|
|
endif
|