From cdbd2f8b36b555cb56b510fccf29fb5a12d66f80 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 1 Feb 2024 14:13:23 +0300 Subject: Add support for enable clause in tests package manifest value --- libbrep/build-extra.sql | 1 + libbrep/build-package.hxx | 1 + libbrep/build.hxx | 2 +- libbrep/build.xml | 2 ++ libbrep/package.hxx | 5 ++++- libbrep/package.xml | 6 ++++++ load/load.cxx | 1 + mod/mod-build-task.cxx | 1 + mod/mod-package-version-details.cxx | 19 ++++++++++++++++++- tests/load/1/math/libfoo-1.2.4+1.tar.gz | Bin 1496 -> 1515 bytes tests/load/1/math/libfoo-tests-1.2.4.tar.gz | Bin 333 -> 392 bytes tests/load/1/math/packages.manifest | 21 +++++++++++++-------- tests/load/driver.cxx | 2 +- 13 files changed, 49 insertions(+), 12 deletions(-) diff --git a/libbrep/build-extra.sql b/libbrep/build-extra.sql index 9ffbac1..23015f4 100644 --- a/libbrep/build-extra.sql +++ b/libbrep/build-extra.sql @@ -147,6 +147,7 @@ CREATE FOREIGN TABLE build_package_tests ( test_package_version_revision INTEGER NULL, test_type TEXT NOT NULL, test_buildtime BOOLEAN NOT NULL, + test_enable TEXT NULL, test_reflect TEXT NULL) SERVER package_server OPTIONS (table_name 'package_tests'); diff --git a/libbrep/build-package.hxx b/libbrep/build-package.hxx index 94ffb08..6d7fb14 100644 --- a/libbrep/build-package.hxx +++ b/libbrep/build-package.hxx @@ -98,6 +98,7 @@ namespace brep { test_dependency_type type; bool buildtime; + optional enable; optional reflect; }; diff --git a/libbrep/build.hxx b/libbrep/build.hxx index b64b28a..adad535 100644 --- a/libbrep/build.hxx +++ b/libbrep/build.hxx @@ -28,7 +28,7 @@ // #define LIBBREP_BUILD_SCHEMA_VERSION_BASE 20 -#pragma db model version(LIBBREP_BUILD_SCHEMA_VERSION_BASE, 22, closed) +#pragma db model version(LIBBREP_BUILD_SCHEMA_VERSION_BASE, 23, closed) // We have to keep these mappings at the global scope instead of inside the // brep namespace because they need to be also effective in the bbot namespace diff --git a/libbrep/build.xml b/libbrep/build.xml index 2ac0002..0a25488 100644 --- a/libbrep/build.xml +++ b/libbrep/build.xml @@ -1,4 +1,6 @@ + + diff --git a/libbrep/package.hxx b/libbrep/package.hxx index e189339..06e6335 100644 --- a/libbrep/package.hxx +++ b/libbrep/package.hxx @@ -20,7 +20,7 @@ // #define LIBBREP_PACKAGE_SCHEMA_VERSION_BASE 27 -#pragma db model version(LIBBREP_PACKAGE_SCHEMA_VERSION_BASE, 28, closed) +#pragma db model version(LIBBREP_PACKAGE_SCHEMA_VERSION_BASE, 29, closed) namespace brep { @@ -198,6 +198,7 @@ namespace brep { test_dependency_type type; bool buildtime; + optional enable; optional reflect; test_dependency () = default; @@ -205,10 +206,12 @@ namespace brep test_dependency_type t, bool b, optional c, + optional e, optional r) : dependency {move (n), move (c), nullptr /* package */}, type (t), buildtime (b), + enable (move (e)), reflect (move (r)) { } diff --git a/libbrep/package.xml b/libbrep/package.xml index 073fbb6..bf7915e 100644 --- a/libbrep/package.xml +++ b/libbrep/package.xml @@ -1,4 +1,10 @@ + + + + + + diff --git a/load/load.cxx b/load/load.cxx index 2fb50c0..b644a3a 100644 --- a/load/load.cxx +++ b/load/load.cxx @@ -586,6 +586,7 @@ load_packages (const shared_ptr& rp, td.type, td.buildtime, move (td.constraint), + move (td.enable), move (td.reflect)); } diff --git a/mod/mod-build-task.cxx b/mod/mod-build-task.cxx index 20a3518..1c21c3a 100644 --- a/mod/mod-build-task.cxx +++ b/mod/mod-build-task.cxx @@ -386,6 +386,7 @@ handle (request& rq, response& rs) td.type, td.buildtime, move (td.constraint), + move (td.enable), move (td.reflect)); } diff --git a/mod/mod-package-version-details.cxx b/mod/mod-package-version-details.cxx index b1729bb..35a1a22 100644 --- a/mod/mod-package-version-details.cxx +++ b/mod/mod-package-version-details.cxx @@ -453,7 +453,10 @@ handle (request& rq, response& rs) // // Print test dependencies of the specific type. // - auto print_tests = [&pkg, &s, &print_dependency] (test_dependency_type dt) + auto print_tests = [&pkg, + &s, + &print_dependency, + full] (test_dependency_type dt) { string id; @@ -492,6 +495,20 @@ handle (request& rq, response& rs) print_dependency (td); + if (td.enable || td.reflect) + { + if (full) + { + if (td.enable) + s << " ? (" << *td.enable << ')'; + + if (td.reflect) + s << ' ' << *td.reflect; + } + else + s << " ..."; + } + s << ~SPAN << ~TD << ~TR; diff --git a/tests/load/1/math/libfoo-1.2.4+1.tar.gz b/tests/load/1/math/libfoo-1.2.4+1.tar.gz index d3e7a0d..db22a19 100644 Binary files a/tests/load/1/math/libfoo-1.2.4+1.tar.gz and b/tests/load/1/math/libfoo-1.2.4+1.tar.gz differ diff --git a/tests/load/1/math/libfoo-tests-1.2.4.tar.gz b/tests/load/1/math/libfoo-tests-1.2.4.tar.gz index 2efccd0..84a7913 100644 Binary files a/tests/load/1/math/libfoo-tests-1.2.4.tar.gz and b/tests/load/1/math/libfoo-tests-1.2.4.tar.gz differ diff --git a/tests/load/1/math/packages.manifest b/tests/load/1/math/packages.manifest index 9be4033..574370a 100644 --- a/tests/load/1/math/packages.manifest +++ b/tests/load/1/math/packages.manifest @@ -111,23 +111,24 @@ requires: ? ($windows); Only 64-bit. requires: x86_64 ? ; Only if on Windows. requires: * vc++ >= 12.0 ? (windows); Only if using VC++ on Windows. requires: host -tests: * libfoo-tests == 1.2.4 +tests: * libfoo-tests == 1.2.4 ? (!$defined(config.libfoo_tests.test))\ + config.libfoo_tests.test=libfoo examples: libfoo-examples benchmarks: libfoo-benchmarks > 0.0.1 builds: all -network-build-config: config.libfoo.network=true; Enable networking API. network-build-include: windows-vc_14d/x86_64-microsoft-win32-msvc14.0 network-build-exclude: ** +network-build-config: config.libfoo.network=true; Enable networking API. +cache-builds: default +cache-builds: -linux +cache-build-include: windows-vc_14d/x86_64-microsoft-win32-msvc14.0 +cache-build-exclude: ** cache-build-config:\ config.libfoo.cache=true config.libfoo.buffer=4096 ; Enable caching. \ -cache-builds: default -cache-builds: -linux -cache-build-include: windows-vc_14d/x86_64-microsoft-win32-msvc14.0 -cache-build-exclude: ** bootstrap-build:\ project = libfoo @@ -140,7 +141,7 @@ config [uint64] config.libfoo.buffer ?= 1024 \ location: libfoo-1.2.4+1.tar.gz -sha256sum: 072386bc75b026889d2992374609a2b4fa18ee59c00f664d5bb21fb86a090671 +sha256sum: ffce9d3e3ca9899d3fd6da1f6b93c07cce2c3f6b7004948b59757dae420f801b : name: libfoo-benchmarks version: 1.2.4 @@ -175,8 +176,12 @@ bootstrap-build:\ project = libfoo-tests \ +root-build:\ +config [strings] config.libfoo_tests.test + +\ location: libfoo-tests-1.2.4.tar.gz -sha256sum: bff1e47ef4f9658072dd7f412e97f80179d4257323568c3fa77ce6adbf89ebd1 +sha256sum: 29a97b3356c42602dd81ee2766c242f8974b0a92d8560cb107dd464655d3d527 : name: libpq version: 0 diff --git a/tests/load/driver.cxx b/tests/load/driver.cxx index f61ab25..0f2c8de 100644 --- a/tests/load/driver.cxx +++ b/tests/load/driver.cxx @@ -862,7 +862,7 @@ test_pkg_repos (const cstrings& loader_args, assert (check_location (fpv5)); assert (fpv5->sha256sum && *fpv5->sha256sum == - "072386bc75b026889d2992374609a2b4fa18ee59c00f664d5bb21fb86a090671"); + "ffce9d3e3ca9899d3fd6da1f6b93c07cce2c3f6b7004948b59757dae420f801b"); assert (fpv5->buildable); -- cgit v1.1