aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-02-01 14:13:23 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-02-01 14:16:01 +0300
commitcdbd2f8b36b555cb56b510fccf29fb5a12d66f80 (patch)
tree89b3860cc9e6ac562832e231a1d107a2ab23e2ab
parentccb8a1c22726d15da6f823785e9f9afef751811f (diff)
Add support for enable clause in tests package manifest value
-rw-r--r--libbrep/build-extra.sql1
-rw-r--r--libbrep/build-package.hxx1
-rw-r--r--libbrep/build.hxx2
-rw-r--r--libbrep/build.xml2
-rw-r--r--libbrep/package.hxx5
-rw-r--r--libbrep/package.xml6
-rw-r--r--load/load.cxx1
-rw-r--r--mod/mod-build-task.cxx1
-rw-r--r--mod/mod-package-version-details.cxx19
-rw-r--r--tests/load/1/math/libfoo-1.2.4+1.tar.gzbin1496 -> 1515 bytes
-rw-r--r--tests/load/1/math/libfoo-tests-1.2.4.tar.gzbin333 -> 392 bytes
-rw-r--r--tests/load/1/math/packages.manifest21
-rw-r--r--tests/load/driver.cxx2
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<string> enable;
optional<string> 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 @@
<changelog xmlns="http://www.codesynthesis.com/xmlns/odb/changelog" database="pgsql" schema-name="build" version="1">
+ <changeset version="23"/>
+
<changeset version="22"/>
<changeset version="21"/>
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<string> enable;
optional<string> reflect;
test_dependency () = default;
@@ -205,10 +206,12 @@ namespace brep
test_dependency_type t,
bool b,
optional<version_constraint> c,
+ optional<string> e,
optional<string> 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 @@
<changelog xmlns="http://www.codesynthesis.com/xmlns/odb/changelog" database="pgsql" schema-name="package" version="1">
+ <changeset version="29">
+ <alter-table name="package_tests">
+ <add-column name="test_enable" type="TEXT" null="true"/>
+ </alter-table>
+ </changeset>
+
<changeset version="28">
<alter-table name="package_build_configs">
<add-column name="config_email" type="TEXT" null="true"/>
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<repository>& 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
--- a/tests/load/1/math/libfoo-1.2.4+1.tar.gz
+++ b/tests/load/1/math/libfoo-1.2.4+1.tar.gz
Binary files 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
--- a/tests/load/1/math/libfoo-tests-1.2.4.tar.gz
+++ b/tests/load/1/math/libfoo-tests-1.2.4.tar.gz
Binary files 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);