From 57ebf3b3238a165c1973ecdf96ba79f95d650fc9 Mon Sep 17 00:00:00 2001 From: Berke Güzel Date: Thu, 15 Oct 2026 12:29:25 +0300 Subject: Add soversion, version macros, and reserved term_options words The shared library now carries its major version in the SONAME (libterm.so.0), so an ABI break gets a new file name. The header gains TERM_VERSION, TERM_VERSION_MAJOR/MINOR/PATCH and TERM_VERSION_CODE, and term_version() returns the code the library was built with. A test checks the macros against meson.build's project version and against the runtime value. term_options ends with uint32_t reserved[8]. term_new() returns NULL if a word is nonzero, so later versions can give those words a meaning without misreading a caller's leftover data. All-zero options stay valid. Co-Authored-By: Claude Haiku 5.5 --- tests/meson.build | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests/meson.build') diff --git a/tests/meson.build b/tests/meson.build index 69f3c49..5c77412 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -117,6 +117,17 @@ if cc.has_link_argument('-Wl,--wrap=realloc') and cc.has_link_argument('-Wl,--wr suite: 'unit', ) endif + +# The project version comes in as a define, so the header macros cannot +# drift from meson.build. +version_test = executable('version-test', 'version_test.c', + c_args: test_c_args + ['-DTERM_TEST_PROJECT_VERSION="@0@"'.format(meson.project_version())], + dependencies: [term_internal_dep], +) +test('version-test', version_test, + env: test_env, + suite: 'unit', +) test('term-cross-test', bash, args: [files('cross_test.sh'), meson.project_source_root()], suite: 'portability', -- cgit v1.2.3