From e4aa50325af27f3e8eec1b73032244ac345b8459 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Wed, 19 Aug 2026 14:41:55 +0000 Subject: [PATCH 1/6] demo(docs): render module verification report via score_module_verification_report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Demonstrates the ``.. module-verification-report::`` directive shipped by the ``ankr_mod_verf_report`` branch of ``score_docs_as_code`` (eclipse-score/docs-as-code#730): - Add a new page ``docs/reporting/module_verification_report.rst`` that only carries the ``.. document::`` need and the two-line invocation of the new directive, driven by ``docs/reporting/module_report.yaml`` (module_id, feature_id, five standard workproducts). - Hook the new page into ``docs/index.rst`` under a fresh "Reporting" section in the top-level toctree. - Pin ``score_docs_as_code`` via ``git_override`` to a66bf953 — tip of ankr_mod_verf_report (refactor + tests + docs + testcase_annotations). - Extend the existing gtest suites for ``bit_manipulation``, ``bitmask_operators`` and the ``flatbuffers/details`` unit tests with additional cases that fill in the coverage the module report is meant to visualise. - Keep ``docs/conf.py`` minimal — no coverage-substitution helper, no testcase-badge ``setup`` (that logic now lives in the shared extension as ``testcase_annotations``). --- MODULE.bazel | 11 +++ MODULE.bazel.lock | 68 +------------------ docs/conf.py | 1 + docs/index.rst | 8 +++ docs/module/index.rst | 2 +- docs/reporting/module_verification_report.rst | 43 ++++++++++++ .../bitmanipulation/bit_manipulation_test.cpp | 32 +++++++++ .../bitmask_operators_test.cpp | 11 +++ .../details/buffer_version_info_test.cpp | 2 + score/flatbuffers/details/error_test.cpp | 1 + score/flatbuffers/details/idl_parser_test.cpp | 1 + .../flatbuffers/details/load_buffer_test.cpp | 22 ++++++ .../details/version_reader_test.cpp | 24 +++++++ score/flatbuffers/test/load_buffer_test.cpp | 10 +++ 14 files changed, 169 insertions(+), 67 deletions(-) create mode 100644 docs/reporting/module_verification_report.rst diff --git a/MODULE.bazel b/MODULE.bazel index 6669b02f2d..0fdb49da2f 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -103,6 +103,17 @@ bazel_dep(name = "score_toolchains_rust", version = "0.10.0", dev_dependency = T ## Custom Module Loading bazel_dep(name = "score_docs_as_code", version = "7.1.0", dev_dependency = True) + +# TEMPORARY: pin score_docs_as_code to the ankr_mod_verf_report branch that +# adds the ``score_module_verification_report`` sub-extension. +# Tracks eclipse-score/docs-as-code#730. Remove this override once the branch +# is merged and a release with the extension is published. +git_override( + module_name = "score_docs_as_code", + commit = "5c956f596f1ad223c06a3625bf4fa0f12c0da82b", + remote = "https://github.com/eclipse-score/docs-as-code.git", +) + bazel_dep(name = "score_process", version = "2.0.3", dev_dependency = True) bazel_dep(name = "score_tooling", version = "1.3.1", dev_dependency = True) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 88f1a766df..ed2730474e 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -43,7 +43,6 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "66baf724dbae7aff4787bf2245cc188d50cb08e07789769730151c0943587c14", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.9.4/MODULE.bazel": "ccc41028429f894b02fde7ef67d416cba3ba5084ed9ddb9bb6107aa82d118776", "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.21.0/MODULE.bazel": "77dc393c43ad79398b05865444c5200c6f1aae6765615544f2c7730b5858d533", "https://bcr.bazel.build/modules/aspect_rules_esbuild/0.21.0/source.json": "062b1d3dba8adcfeb28fe60c185647f5a53ec0487ffe93cf0ae91566596e4b49", "https://bcr.bazel.build/modules/aspect_rules_js/1.33.1/MODULE.bazel": "db3e7f16e471cf6827059d03af7c21859e7a0d2bc65429a3a11f005d46fc501b", @@ -52,15 +51,10 @@ "https://bcr.bazel.build/modules/aspect_rules_js/2.3.8/MODULE.bazel": "74bf20a7a6bd5f2be09607fdb4196cfd6f203422ea271752ec2b1afe95426101", "https://bcr.bazel.build/modules/aspect_rules_js/2.3.8/source.json": "411ec9d79d6f5fe8a083359588c21d01a5b48d88a2cbd334a4c90365015b7836", "https://bcr.bazel.build/modules/aspect_rules_lint/0.12.0/MODULE.bazel": "e767c5dbfeb254ec03275a7701b5cfde2c4d2873676804bc7cb27ddff3728fed", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.0.3/MODULE.bazel": "ed0fe929647ba21d2041e14ea3d757133ca306b72d4998e8a3d0d2f515196765", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.3.1/MODULE.bazel": "06ce330900a7d6403bc8d88e5dfad6aeeb8ae40179f66bb89e69c8bf6f6b1a0b", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.4.2/MODULE.bazel": "78d025facf6fa675fd6f0b62fd6a9a2bec7ef5ae1e288e5b53f4383b98017105", - "https://bcr.bazel.build/modules/aspect_rules_lint/1.4.4/MODULE.bazel": "24459eeeeb084bc3e7628c338e494746718bc17b3a3cbd94415c8df5c7c6dc37", "https://bcr.bazel.build/modules/aspect_rules_lint/1.5.3/MODULE.bazel": "7fee71b11be63f1cf0458cd8c731712a0e672d0bb6df8879ed70249bf8dfdfdc", "https://bcr.bazel.build/modules/aspect_rules_lint/2.0.0/MODULE.bazel": "1f4c81edd9af0c54e65dedbe36653fc63dc9a91605313d54d5ab371f853d693c", "https://bcr.bazel.build/modules/aspect_rules_lint/2.3.0/MODULE.bazel": "4d36bce3c1347bb4fed5906877dce0e683cb207f4032711aff32334003bcf835", "https://bcr.bazel.build/modules/aspect_rules_lint/2.3.0/source.json": "07c6e7333ac089e2428a02d68deb5f90e3947aa9b9ac22c26b9e8b0083122926", - "https://bcr.bazel.build/modules/aspect_rules_py/1.0.0/MODULE.bazel": "8eb29876512d3242af50a424300bec5c5f8957b455963df5f618cb7fd4e8ae19", "https://bcr.bazel.build/modules/aspect_rules_py/1.4.0/MODULE.bazel": "6fd29b93207a31445d5d3ab9d9882fd5511e43c95e8e82e7492872663720fd44", "https://bcr.bazel.build/modules/aspect_rules_py/1.6.3/MODULE.bazel": "a34d989f9a258f478b40f69a0c1dd0a810b65173681b459c296ffeebabd997b0", "https://bcr.bazel.build/modules/aspect_rules_py/1.6.3/source.json": "aac06d362804a5a4c1424efc37fc1ded6c6ac7d8be84ef28f735944f8a1f884d", @@ -81,7 +75,6 @@ "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", - "https://bcr.bazel.build/modules/bazel_features/1.2.0/MODULE.bazel": "122b2b606622afbaa498913d54f52d9bcd2d19a5edd1bd6d6c5aa17441c4d5f9", "https://bcr.bazel.build/modules/bazel_features/1.20.0/MODULE.bazel": "8b85300b9c8594752e0721a37210e34879d23adc219ed9dc8f4104a4a1750920", "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", @@ -345,7 +338,6 @@ "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel": "a592852f8a3dd539e82ee6542013bf2cadfc4c6946be8941e189d224500a8934", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", - "https://bcr.bazel.build/modules/rules_java/8.11.0/MODULE.bazel": "c3d280bc5ff1038dcb3bacb95d3f6b83da8dd27bba57820ec89ea4085da767ad", "https://bcr.bazel.build/modules/rules_java/8.13.0/MODULE.bazel": "0444ebf737d144cf2bb2ccb368e7f1cce735264285f2a3711785827c1686625e", "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", "https://bcr.bazel.build/modules/rules_java/8.15.1/MODULE.bazel": "5071eebf0fd602ab0617f846e0e0d8f388d66c961513c736e0ac4a1dcde3ff2c", @@ -354,7 +346,6 @@ "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", - "https://bcr.bazel.build/modules/rules_java/8.6.3/MODULE.bazel": "e90505b7a931d194245ffcfb6ff4ca8ef9d46b4e830d12e64817752e0198e2ed", "https://bcr.bazel.build/modules/rules_java/8.8.0/MODULE.bazel": "de589d0880911ac007abd521b9f0ddcd8b0dbd05c8553e6f8124a050b83acf7d", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", @@ -383,7 +374,6 @@ "https://bcr.bazel.build/modules/rules_multitool/0.4.0/MODULE.bazel": "15517987d5c00c9e7faab41fbe22ee67a350b6eabcc1e08baded5c6d9025897f", "https://bcr.bazel.build/modules/rules_multitool/1.11.1/MODULE.bazel": "f826d2d394e8d964e44ebb4a75ebcfe4e9cd4eb150e2ddcd60398ffeb939696a", "https://bcr.bazel.build/modules/rules_multitool/1.11.1/source.json": "201f43de1d35bd17f25a4fed3ba5a2ec500ef5e08b7d4b341bb9fd39cef0cbc6", - "https://bcr.bazel.build/modules/rules_multitool/1.2.0/MODULE.bazel": "8d818d6104f4030930291bbbbc5684702c237dbcdee7229097543e6a6035adaa", "https://bcr.bazel.build/modules/rules_multitool/1.9.0/MODULE.bazel": "8a042b0dbf35e4aaa94c28ad69efa75c9e673e9ea4bd5c0fb70bab75ef9c636b", "https://bcr.bazel.build/modules/rules_nodejs/5.8.2/MODULE.bazel": "6bc03c8f37f69401b888023bf511cb6ee4781433b0cb56236b2e55a21e3a026a", "https://bcr.bazel.build/modules/rules_nodejs/6.2.0/MODULE.bazel": "ec27907f55eb34705adb4e8257952162a2d4c3ed0f0b3b4c3c1aad1fac7be35e", @@ -401,7 +391,6 @@ "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", - "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc2/MODULE.bazel": "e17f94f8a347e2c808517b65d74988839d2d62daceb50073e44060193b785eb1", "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", @@ -475,7 +464,6 @@ "https://bcr.bazel.build/modules/toolchain_utils/1.0.2/source.json": "88769ec576dddacafd8cca4631812cf8eead89f10a29d9405d9f7a553de6bf87", "https://bcr.bazel.build/modules/toolchains_llvm/1.8.0/MODULE.bazel": "68259b66e5fb84f94fa37125ad476c3eb8edf602a34bf58377cde9a16dd8fa98", "https://bcr.bazel.build/modules/toolchains_llvm/1.8.0/source.json": "70d80fe5b626a3fadf812af41dda4a028640a1184f5a3c7e6cb20130d93ed783", - "https://bcr.bazel.build/modules/toolchains_protoc/0.2.1/MODULE.bazel": "2f08433ff5e659069b3a1abfee2377d68f510f2de1da50678ed992c455b4ff91", "https://bcr.bazel.build/modules/upb/0.0.0-20211020-160625a/MODULE.bazel": "6cced416be2dc5b9c05efd5b997049ba795e5e4e6fafbe1624f4587767638928", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9", @@ -531,21 +519,15 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_bazel_lib/2.9.3/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_bazel_lib/2.9.4/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_esbuild/0.21.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_js/1.33.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_js/1.40.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_js/2.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_js/2.3.8/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/0.12.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.0.3/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.3.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.4.2/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.4.4/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/1.5.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/2.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/2.3.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.4.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.6.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_ts/3.6.0/MODULE.bazel": "not found", @@ -563,7 +545,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.17.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.18.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.19.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.2.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.20.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.21.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/1.23.0/MODULE.bazel": "not found", @@ -774,7 +755,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/7.3.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/7.4.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/7.6.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.11.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.13.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.14.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.15.1/MODULE.bazel": "not found", @@ -782,7 +762,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.5.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.6.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.6.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.6.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_java/8.8.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_jvm_external/4.4.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_jvm_external/5.1/MODULE.bazel": "not found", @@ -806,7 +785,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/0.11.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/0.4.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/1.11.1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/1.2.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_multitool/1.9.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_nodejs/5.8.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_nodejs/6.2.0/MODULE.bazel": "not found", @@ -821,7 +799,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/4.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/6.0.0-rc2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/6.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/6.0.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_proto/7.0.2/MODULE.bazel": "not found", @@ -878,53 +855,14 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_tools_cc/0.1.0/source.json": "c22ba73ccb64d3bbd2177122d9b039c23c1c1cd0b9c7ea71103e8c43af2e4411", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_tools_python/0.1.3/MODULE.bazel": "02bd71d03010d7903412b2c98d25519a46af7ec6d9492270ec371c198e15caec", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_tools_python/0.1.3/source.json": "f87907b20372ca2c4ad15719cba03423577ed1ea8392c7373eb37f73499decce", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_cr_checker/0.2.2/MODULE.bazel": "dc36d9c35543db918c3fb5b93a8e684431f56c7c784cf2a1b90f35802a373c98", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_cr_checker/0.3.1/MODULE.bazel": "f49e037d7fbc0b2a8b2734fc6b47334e8cc8589ca7a5aa0f3ccca85cc5f79fac", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_dash_license_checker/0.1.1/MODULE.bazel": "76681dbd2d45b5c540869a2337174086c56c54953aab1d02cd878b59d31d13a5", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.10.0/MODULE.bazel": "2a37c7b8107a6dd51f0fe673bf11a6d200bc3c078bc7104bc96eb9d2f6772f66", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.10.0/source.json": "3b0e923664da034c9db5564a5fccd31837bcd165cf72ecfb7ae5ff64a00d0883", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.7.0/MODULE.bazel": "f9a5971fbd05f0ed14e7a373dbf58af72a5c58d081537a75c314daaf61c92ae9", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.8.0/MODULE.bazel": "89f855b94d041d2e61ff9667562fb4539c146249f6fb4c5dddf3d13bb9064aa7", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.9.0/MODULE.bazel": "2a04a354eb7a77d478bb43ba20b1dac0758af858172a760e4290621bef1a2f28", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.2.4/MODULE.bazel": "ea4801e96c87e2b8650a0fa9e5fed9b8bdbef05c1bc3e30003ba527d5af60a43", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.2.6/MODULE.bazel": "1af2963e91c6472555e222f0aba3dc2f5492d04598298209a361978ee3e321e3", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.3.3/MODULE.bazel": "95d2b7d44d461c1cf9bd016605f740716fd4ea1303f5f2ed93de3566b90feb1b", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.0.0-RC1/MODULE.bazel": "e118b5cbdc453cde83b5ce481107d8e4a713d3458550b9d10445046d4bba2ff3", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.0.0/MODULE.bazel": "a3ad204b7412c02a899034d78de62b5549bafba5530a256d1007cb3f4ed20a11", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.0.2-CW1/MODULE.bazel": "08d30eba6a1c502096abd65ebb759afb35f988b31e4b72ab5866177703cfec77", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.0.2/MODULE.bazel": "259894df09b4aa6bb5152717b03c3c06a3fd4ad583a7119c52f3a2f0d277b857", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/1.2.0/MODULE.bazel": "a2b10950d585e14b09a6266025c0624b42101f72d3c4efe9591716b8713ede47", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/2.0.0/MODULE.bazel": "0c850a488fd50067b28726bfd7330a6970e36b63e67ea06efd5fbbc813e7be5c", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/2.0.3/MODULE.bazel": "9b945514727190d4c381d8965b972884ba04ce105260ffd2b3c9df51f206ebfe", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/4.5.0/MODULE.bazel": "4cfe52fe8b8dbeaf7e87500036391da278f72f1c2b41b689ffdd4337196dd8fe", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/4.6.0/MODULE.bazel": "d5fbfed7b9bd65f10830e2290045dea639a8cfcaf9f9f0f7a1b12888c14e7d2b", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/4.6.1/MODULE.bazel": "0dae734ea8a99970a7417829b3115af02717b29f0fc40a8ebd3c1afcc71e1e21", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/6.0.0/MODULE.bazel": "ab2af2d8fab73e4512d2e2bd399a64d10c5c5463388322f7025637b13ec7585c", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/7.0.1/MODULE.bazel": "8ca16bc1143f4834e1ad061ddebb3b57dac966d46f890a07829f055dbb3a3d15", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/7.1.0/MODULE.bazel": "7d89729cc6a1cb7a13b9cfbf4bd84ace437451f5eb0873202586ac7cb288eff5", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/7.1.0/source.json": "2aebac074ccaef8aad11822d04a98e97d9aded5d851812075969618da8cf1996", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_format_checker/0.1.1/MODULE.bazel": "1acc254faa90e9f97b79ac69af25b6c21c561f8d6079914f6352b9b20d26bd37", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.1.0/MODULE.bazel": "cc9eae86e76f2a930510ed6e50ec991bb5661687e24881685b39c322087adf6f", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.1.1/MODULE.bazel": "eb086ba99f9319371fbbd0a9252dfd27b0817039b88bd4d691602974b1ada005", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.11.0/MODULE.bazel": "fb6041c96e949a151307b4690ee81cf5d9254d6bf79540184b16567b04397171", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.11.0/source.json": "b379a2499cf06f16de65c2981665c3723afba9e858ed16b453f044882067f56f", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.6.4/MODULE.bazel": "dac9bdb1dd0934bd54549587d0d6d2db93c8298fa190fccd417fff4e0f4a7519", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.6.4/source.json": "a77419136e32cd79a51557dbbf67a73203d67b1b92102a3970720959f31b00fd", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.0.4/MODULE.bazel": "f74302cb90a7c4878db302276afae82966878099861dcfca3ef43256131dab52", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.0.5/MODULE.bazel": "ed17c232ebd65e9d50fd5c1832f90f95ffe95b2a1113d63a176295a2af64d111", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.1.0/MODULE.bazel": "97dd927309f87ecb73629725683028a5dbb37a49b1159c771292e6993569055b", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.1.1-Beta/MODULE.bazel": "7ab8931f4b2754b728101ed5a2afda458b82b885f5cfdb9d8c4c62b5c1a2da7e", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.1.1/MODULE.bazel": "35c84c7cec7d15678f63145054bb74367afb65929724c2115095d5e1b96fca94", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.2.0/MODULE.bazel": "ec092bf01731a1866352d7b8aaa0e30cae319667abc8cf7a86aec0bdb8555a0e", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.3.1/MODULE.bazel": "29666e38fbc76eddd6676e594f225e474d130dce9c3a9d224e59ae7a499c4575", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.3.2/MODULE.bazel": "a32390ef217cef9a811408b0a1c5aeed1398c377aa846f5d5416d7b95b4e4366", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.6.0/MODULE.bazel": "2496bc24311f69f49449ee85d8bb38e3b970cbfcf10d0a7f19b2d5262ce80e8d", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.1/MODULE.bazel": "88bff0ed46da79d87f8c441a6bf6b760ee7c194b282e7e54a8b7db6ea2354db9", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.2/MODULE.bazel": "6d2b227bb6880e9f6871cc8cf94c83399e35c188424f7e9b826262de8149ed43", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.3/MODULE.bazel": "d9359f1cb7e460a5eb6b7e5d2185bcc6ed7c9f4a31f560d6a703549ca6366ed7", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.3/source.json": "0ea635f75ded5225494b709a441488f80be0db0ded4a9786367477ecdbcf42b0", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_python_basics/0.3.0/MODULE.bazel": "785ddd5295213e36c31ab86bdc34f29c0f7d1b72e9abd931bb08f42c0e48e2e9", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_python_basics/0.3.1/MODULE.bazel": "99c491109937542e61df090222666a8613ef946fa7bb2b2d5ba648b2baba03ad", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_python_basics/0.3.2/MODULE.bazel": "f25490f64035a0e3a0d53ad9cb6164e8325ce6cf2a7ee68c6ae153840cb2497e", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_python_basics/0.3.4/MODULE.bazel": "53bd16dfbb1fb8ecf6822fb26f9f4e8333bac7b14d12bb02bf84078063820a31", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_qnx_unit_tests/0.2.0/MODULE.bazel": "aaffff67916dd058737aac8e04368f12b214e7646ff58adbab48e6429d1a5410", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_qnx_unit_tests/0.2.0/source.json": "c40a614fd88beab7cb65b8640debd44eff3fbc32a7839734ef1112f265d2eeef", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rules_imagefs/0.0.3/MODULE.bazel": "d87fcd3485438284fa96d6a5a81923d6b6672468947423517cc43c4d7692ca6a", @@ -933,7 +871,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rust_policies/0.0.2/MODULE.bazel": "ade2bad4a331b02d9b7e7d9842e8de8c6fded6186486e02c4f7db5cd4b71d34d", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rust_policies/0.0.5/MODULE.bazel": "7de02547bdf121d3dedf5141b97f0fd9a545bd255ff5c7b699056b35816ffad9", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rust_policies/0.0.5/source.json": "22c8bf0a5cbf7c7b06f774f3f66498e0bc14346a8b2208f7427a8fbb78a42547", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_starpls_lsp/0.1.0/MODULE.bazel": "b2f8c4c8d8e851706255ff9002b448bff6e040b8f0c6adedbde2a09375aa16cc", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_toolchains_rust/0.10.0/MODULE.bazel": "535296e6cdef55a506c580ca2ce541aa9ddefb354de1a24ab2bd4addc939282b", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_toolchains_rust/0.10.0/source.json": "8bda773be264da16d2a82a03ebb737421dd4a35855f1e9a5d03d9722d84c1df5", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_tooling/1.0.2/MODULE.bazel": "e70f396375b9d612b4f41ebceff7f18f68ab423b14625c138a354cc01bc62a10", @@ -957,7 +894,6 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/tar.bzl/0.7.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/toolchain_utils/1.0.2/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/toolchains_llvm/1.8.0/MODULE.bazel": "not found", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/toolchains_protoc/0.2.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/upb/0.0.0-20211020-160625a/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "not found", diff --git a/docs/conf.py b/docs/conf.py index 985dd6b046..d362ad5bdd 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -11,6 +11,7 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* + project = "S-CORE Baselibs" project_url = "https://eclipse-score.github.io/baselibs" version = "0.1" diff --git a/docs/index.rst b/docs/index.rst index 01ddcd7cf6..db2e258baa 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -55,6 +55,14 @@ The Components documentation provides detailed documentation for each individual baselibs/components/index +Reporting +--------- + +.. toctree:: + :maxdepth: 1 + + reporting/module_verification_report + Quick Start - Building and Testing ================================== diff --git a/docs/module/index.rst b/docs/module/index.rst index db65518c70..dc38ed0f34 100644 --- a/docs/module/index.rst +++ b/docs/module/index.rst @@ -14,7 +14,7 @@ .. mod:: Baselibs :id: mod__baselibs - :includes: comp__baselibs_json[version==1], comp__baselibs_memory_shared[version==1], comp__baselibs_result[version==1], comp__baselibs_bit_manipulation[version==1], comp__baselibs_containers[version==1], comp__baselibs_filesystem[version==1], comp__baselibs_utils[version==1], comp__baselibs_concurrency[version==1], comp__baselibs_safecpp[version==1] + :includes: comp__baselibs_static_reflection[version==1], comp__baselibs_result[version==1], comp__log[version==1], comp__baselibs_hash[version==1], comp__baselibs_flatbuffers[version==1], comp__baselibs_abi_compatible_data_types[version==1], comp__baselibs_json[version==1], comp__baselibs_memory_shared[version==1], comp__baselibs_result[version==1], comp__baselibs_bit_manipulation[version==1], comp__baselibs_containers[version==1], comp__baselibs_filesystem[version==1], comp__baselibs_utils[version==1], comp__baselibs_concurrency[version==1], comp__baselibs_safecpp[version==1] :status: valid :version: 1 :safety: ASIL_B diff --git a/docs/reporting/module_verification_report.rst b/docs/reporting/module_verification_report.rst new file mode 100644 index 0000000000..aa026ce86c --- /dev/null +++ b/docs/reporting/module_verification_report.rst @@ -0,0 +1,43 @@ +.. + ****************************************************************************** + Copyright (c) 2026 Contributors to the Eclipse Foundation + + See the NOTICE file(s) distributed with this work for additional + information regarding copyright ownership. + + This program and the accompanying materials are made available under the + terms of the Apache License Version 2.0 which is available at + https://www.apache.org/licenses/LICENSE-2.0 + + SPDX-License-Identifier: Apache-2.0 + ****************************************************************************** + +Module Verification Report +========================== + +.. document:: Module Verification Report + :id: doc__baselibs_module_verification_report + :status: valid + :safety: QM + :security: YES + :version: 1 + :realizes: wp__feature_arch[version==1] + +This document provides a verification report of the Baselibs feature and its +associated components. + +.. module-verification-report:: + :module-id: mod__baselibs + :feature-id: feat__baselibs + :components: comp__baselibs_json, + comp__baselibs_memory_shared, + comp__baselibs_result, + comp__baselibs_bit_manipulation, + comp__baselibs_containers, + comp__baselibs_filesystem, + comp__baselibs_concurrency, + comp__baselibs_safecpp, + comp__baselibs_static_reflection, + comp__baselibs_hash, + comp__baselibs_flatbuffers, + comp__baselibs_abi_compatible_data_types diff --git a/score/bitmanipulation/bit_manipulation_test.cpp b/score/bitmanipulation/bit_manipulation_test.cpp index 1e49ae4582..1240bf1dc2 100644 --- a/score/bitmanipulation/bit_manipulation_test.cpp +++ b/score/bitmanipulation/bit_manipulation_test.cpp @@ -28,6 +28,7 @@ using ::testing::Eq; TEST(HalfByte, CanBeConstructedFromUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr HalfByte value{std::uint8_t{4u}}; EXPECT_THAT(value, Eq(4u)); @@ -35,6 +36,7 @@ TEST(HalfByte, CanBeConstructedFromUInt8) TEST(HalfByte, CanBeConstructedFromUInt16IfInRange) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr HalfByte value{std::uint16_t{4u}}; EXPECT_THAT(value, Eq(4u)); @@ -42,6 +44,7 @@ TEST(HalfByte, CanBeConstructedFromUInt16IfInRange) TEST(HalfByte, CanBeConstructedFromBigUInt8ButUpperHalfIsDropped) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr HalfByte value{std::uint8_t{77u}}; // 01001101 EXPECT_THAT(value, Eq(13u)); @@ -49,6 +52,7 @@ TEST(HalfByte, CanBeConstructedFromBigUInt8ButUpperHalfIsDropped) TEST(Byte, CanBeConstructedFromUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr Byte value{std::uint8_t{4u}}; EXPECT_THAT(value, Eq(4u)); @@ -56,6 +60,7 @@ TEST(Byte, CanBeConstructedFromUInt8) TEST(Byte, CanBeConstructedFromUInt16IfInRange) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr Byte value{std::uint16_t{4u}}; EXPECT_THAT(value, Eq(4u)); @@ -63,6 +68,7 @@ TEST(Byte, CanBeConstructedFromUInt16IfInRange) TEST(Byte, CanBeConstructedFromTwoHalfBytes) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr HalfByte upperHalfByte{std::uint8_t{13u}}; // 00001101 constexpr HalfByte lowerHalfByte{std::uint8_t{4u}}; // 00000100 @@ -73,6 +79,7 @@ TEST(Byte, CanBeConstructedFromTwoHalfBytes) TEST(Byte, CanBeConstructedFromTwoBigHalfBytes) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr HalfByte upperHalfByte{77u}; // 01001101 constexpr HalfByte lowerHalfByte{36u}; // 00100100 @@ -83,6 +90,7 @@ TEST(Byte, CanBeConstructedFromTwoBigHalfBytes) TEST(Byte, CanBeConstructedFromTwoZeroHalfBytes) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr HalfByte zeroUpperHalfByte{0}; // 00000000 constexpr HalfByte zeroLowerHalfByte{0}; // 00000000 @@ -93,6 +101,7 @@ TEST(Byte, CanBeConstructedFromTwoZeroHalfBytes) TEST(Byte, CanBeConstructedFromTwoHalfBytesWithMaxValue) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr HalfByte halfByteWithMaxValue{255}; // 11111111 constexpr Byte combinedByte{halfByteWithMaxValue, halfByteWithMaxValue}; @@ -102,6 +111,7 @@ TEST(Byte, CanBeConstructedFromTwoHalfBytesWithMaxValue) TEST(Extract, UpperHalfByteFromAByte) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr Byte input{212u}; // 11010100 constexpr auto upperHalfByte = input.UpperHalfByte(); @@ -111,6 +121,7 @@ TEST(Extract, UpperHalfByteFromAByte) TEST(Extract, LowerHalfByteFromAByte) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr Byte input{212}; // 11010100 constexpr auto lowerHalfByte = input.LowerHalfByte(); @@ -120,6 +131,7 @@ TEST(Extract, LowerHalfByteFromAByte) TEST(Extract, LowerHalfByteFromAByteCanBeConvertedToUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); constexpr Byte input{212}; // 11010100 const std::uint8_t lowerHalfByteAsUInt8{input.LowerHalfByte()}; @@ -129,6 +141,7 @@ TEST(Extract, LowerHalfByteFromAByteCanBeConvertedToUInt8) TEST(SetBit, WithUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); std::uint8_t input{0}; // 00000000 constexpr std::uint8_t expectedResult{4}; // 00000100 @@ -139,6 +152,7 @@ TEST(SetBit, WithUInt8) TEST(SetBit, WithUInt64) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); // 00000000'00000000'00000000'00000000'00000000'00000000'00000000'00000000 std::uint64_t input{0}; // 00000000'00000000'00000100'00000000'00000000'00000000'00000000'00000000 @@ -151,6 +165,7 @@ TEST(SetBit, WithUInt64) TEST(SetBit, OverflowWithUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations, comp_req__bitmanipulation__bounds_safety"); std::uint8_t input{0}; // 00000000 EXPECT_FALSE(::score::platform::SetBit(input, 8U)); @@ -159,6 +174,7 @@ TEST(SetBit, OverflowWithUInt8) TEST(ClearBit, WithUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); std::uint8_t input{24}; // 00011000 constexpr std::uint8_t expectedResult{8}; // 00001000 @@ -169,6 +185,7 @@ TEST(ClearBit, WithUInt8) TEST(ClearBit, WithUInt64) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); // 00000000'00000000'00011000'00000000'00000000'00000000'00000000'00000000 std::uint64_t input{26388279066624ULL}; // 00000000'00000000'00001000'00000000'00000000'00000000'00000000'00000000 @@ -181,6 +198,7 @@ TEST(ClearBit, WithUInt64) TEST(ClearBit, OverflowWithUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations, comp_req__bitmanipulation__bounds_safety"); std::uint8_t input{0}; // 00000000 EXPECT_FALSE(::score::platform::ClearBit(input, 8U)); @@ -189,6 +207,7 @@ TEST(ClearBit, OverflowWithUInt8) TEST(ToggleBit, WithUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); std::uint8_t input{24}; // 00011000 constexpr std::uint8_t expectedResult{20}; // 00010100 @@ -200,6 +219,7 @@ TEST(ToggleBit, WithUInt8) TEST(ToggleBit, WithUInt64) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); // 00000000'00000000'00011000'00000000'00000000'00000000'00000000'00000000 std::uint64_t input{26388279066624ULL}; // 00000000'00000000'00010100'00000000'00000000'00000000'00000000'00000000 @@ -213,6 +233,7 @@ TEST(ToggleBit, WithUInt64) TEST(ToggleBit, OverflowWithUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations, comp_req__bitmanipulation__bounds_safety"); std::uint8_t input{0}; // 00000000 EXPECT_FALSE(::score::platform::ToggleBit(input, 8U)); @@ -221,6 +242,7 @@ TEST(ToggleBit, OverflowWithUInt8) TEST(CheckBit, WithUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); std::uint8_t input{24}; // 00011000 ASSERT_TRUE(::score::platform::CheckBit(input, 3U)); @@ -229,6 +251,7 @@ TEST(CheckBit, WithUInt8) TEST(CheckBit, WithUInt64) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations"); // 00000000'00000000'00011000'00000000'00000000'00000000'00000000'00000000 std::uint64_t input{26388279066624ULL}; @@ -238,6 +261,7 @@ TEST(CheckBit, WithUInt64) TEST(CheckBit, OverflowWithUInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bit_operations, comp_req__bitmanipulation__bounds_safety"); std::uint8_t input{0}; // 00000000 EXPECT_FALSE(::score::platform::CheckBit(input, 8U)); @@ -246,6 +270,7 @@ TEST(CheckBit, OverflowWithUInt8) TEST(GetByte, FromUint8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); std::uint8_t input{42}; const auto extracted_byte = ::score::platform::GetByte<0>(input); EXPECT_EQ(extracted_byte, input); @@ -253,6 +278,7 @@ TEST(GetByte, FromUint8) TEST(GetByte, FromInt8) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); std::int8_t input{42}; const auto extracted_byte = ::score::platform::GetByte<0>(input); EXPECT_EQ(extracted_byte, input); @@ -260,6 +286,7 @@ TEST(GetByte, FromInt8) TEST(GetByte, FromUint16) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); std::uint16_t input{0x0A0B}; EXPECT_EQ(::score::platform::GetByte<1>(input), 0x0A); @@ -268,6 +295,7 @@ TEST(GetByte, FromUint16) TEST(GetByte, FromInt16) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); std::int16_t input{0x0A0B}; EXPECT_EQ(::score::platform::GetByte<1>(input), 0x0A); @@ -276,6 +304,7 @@ TEST(GetByte, FromInt16) TEST(GetByte, FromUint32) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); std::uint32_t input{0x0A0B0C0D}; EXPECT_EQ(::score::platform::GetByte<3>(input), 0x0A); @@ -286,6 +315,7 @@ TEST(GetByte, FromUint32) TEST(GetByte, FromInt32) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); std::int32_t input{0x0A0B0C0D}; EXPECT_EQ(::score::platform::GetByte<3>(input), 0x0A); @@ -296,6 +326,7 @@ TEST(GetByte, FromInt32) TEST(GetByte, FromUint64) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); std::uint64_t input{0x0A0B0C0D04030201}; EXPECT_EQ(::score::platform::GetByte<7>(input), 0x0A); @@ -310,6 +341,7 @@ TEST(GetByte, FromUint64) TEST(GetByte, FromInt64) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__byte_operations"); std::int64_t input{0x0A0B0C0D04030201}; EXPECT_EQ(::score::platform::GetByte<7>(input), 0x0A); diff --git a/score/bitmanipulation/bitmask_operators_test.cpp b/score/bitmanipulation/bitmask_operators_test.cpp index a9e96a6a9c..c0ce3c80d7 100644 --- a/score/bitmanipulation/bitmask_operators_test.cpp +++ b/score/bitmanipulation/bitmask_operators_test.cpp @@ -43,6 +43,7 @@ using UnderlyingType = std::underlying_type_t; TEST(MyBitmask, UnderlyingValuesMatchExpectations) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); EXPECT_EQ(static_cast(MyBitmask::a), 1); EXPECT_EQ(static_cast(MyBitmask::b), 2); EXPECT_EQ(static_cast(MyBitmask::c), 4); @@ -50,6 +51,7 @@ TEST(MyBitmask, UnderlyingValuesMatchExpectations) TEST(MyBitmask, SupportsOperatorOr) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::a | MyBitmask::b}; EXPECT_EQ(static_cast(bitmask), 3); bitmask = MyBitmask::b | MyBitmask::c; @@ -58,6 +60,7 @@ TEST(MyBitmask, SupportsOperatorOr) TEST(MyBitmask, SupportsOperatorAnd) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); auto func = [](MyBitmask bitmask) { EXPECT_TRUE(bitmask & MyBitmask::a); EXPECT_TRUE(bitmask & MyBitmask::b); @@ -69,6 +72,7 @@ TEST(MyBitmask, SupportsOperatorAnd) TEST(MyBitmask, SupportsOperatorXor) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::a ^ MyBitmask::b}; EXPECT_EQ(static_cast(bitmask), 3); bitmask = bitmask ^ MyBitmask::b; @@ -77,6 +81,7 @@ TEST(MyBitmask, SupportsOperatorXor) TEST(MyBitmask, SupportsOperatorNot) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::a}; bitmask = ~bitmask; @@ -87,6 +92,7 @@ TEST(MyBitmask, SupportsOperatorNot) TEST(MyBitmask, SupportsAssignOperatorAnd) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::a}; bitmask &= MyBitmask::b; @@ -96,6 +102,7 @@ TEST(MyBitmask, SupportsAssignOperatorAnd) TEST(MyBitmask, SupportsAssignOperatorAndMatching) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::b}; bitmask &= MyBitmask::b; @@ -105,6 +112,7 @@ TEST(MyBitmask, SupportsAssignOperatorAndMatching) TEST(MyBitmask, SupportsAssignOperatorOr) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::a}; bitmask |= MyBitmask::b; @@ -114,6 +122,7 @@ TEST(MyBitmask, SupportsAssignOperatorOr) TEST(MyBitmask, SupportsAssignOperatorOrMatching) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::a}; bitmask |= MyBitmask::a; @@ -123,6 +132,7 @@ TEST(MyBitmask, SupportsAssignOperatorOrMatching) TEST(MyBitmask, SupportsAssignOperatorXOr) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::a}; bitmask ^= MyBitmask::b; @@ -132,6 +142,7 @@ TEST(MyBitmask, SupportsAssignOperatorXOr) TEST(MyBitmask, SupportsAssignOperatorXOrMatching) { + RecordProperty("PartiallyVerifies", "comp_req__bitmanipulation__bitmask_operators"); MyBitmask bitmask{MyBitmask::a}; bitmask ^= MyBitmask::a; diff --git a/score/flatbuffers/details/buffer_version_info_test.cpp b/score/flatbuffers/details/buffer_version_info_test.cpp index 9d3b8e57c7..3adcbdfc88 100644 --- a/score/flatbuffers/details/buffer_version_info_test.cpp +++ b/score/flatbuffers/details/buffer_version_info_test.cpp @@ -55,6 +55,7 @@ INSTANTIATE_TEST_SUITE_P( TEST_P(BufferVersionInfoEqualityTest, OperatorEquals) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", "operator== returns true when all fields are equal and false when any field differs"); @@ -65,6 +66,7 @@ TEST_P(BufferVersionInfoEqualityTest, OperatorEquals) TEST_P(BufferVersionInfoEqualityTest, OperatorNotEquals) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", diff --git a/score/flatbuffers/details/error_test.cpp b/score/flatbuffers/details/error_test.cpp index b4ed53bd58..6f520567fa 100644 --- a/score/flatbuffers/details/error_test.cpp +++ b/score/flatbuffers/details/error_test.cpp @@ -24,6 +24,7 @@ namespace unit_test TEST(FlatbuffersErrorDomainTest, ProvidesMessageForEveryErrorCode) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__verification, comp_req__flatbuffers__version_check"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", diff --git a/score/flatbuffers/details/idl_parser_test.cpp b/score/flatbuffers/details/idl_parser_test.cpp index 979bfb7ad4..9c21c4911b 100644 --- a/score/flatbuffers/details/idl_parser_test.cpp +++ b/score/flatbuffers/details/idl_parser_test.cpp @@ -23,6 +23,7 @@ namespace TEST(IdlParserTest, VersionStringIsNonEmptyAndHasDotSeparatedFormat) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__asil"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", "FLATBUFFERS_VERSION() returns a non-empty string in X.Y.Z format"); diff --git a/score/flatbuffers/details/load_buffer_test.cpp b/score/flatbuffers/details/load_buffer_test.cpp index fb9f9ddae8..87d5132795 100644 --- a/score/flatbuffers/details/load_buffer_test.cpp +++ b/score/flatbuffers/details/load_buffer_test.cpp @@ -137,6 +137,7 @@ class LoadFlatbufferTest : public ::testing::Test TEST_F(LoadFlatbufferTest, OpenFailureReturnsError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); const auto open_error = score::os::Error::createFromErrno(ENOENT); EXPECT_CALL(os_.fcntl, open(_, _)).WillOnce(Return(score::cpp::make_unexpected(open_error))); @@ -149,6 +150,7 @@ TEST_F(LoadFlatbufferTest, OpenFailureReturnsError) TEST_F(LoadFlatbufferTest, FstatFailureReturnsErrorAndClosesFile) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); const auto stat_error = score::os::Error::createFromErrno(EIO); @@ -164,6 +166,7 @@ TEST_F(LoadFlatbufferTest, FstatFailureReturnsErrorAndClosesFile) TEST_F(LoadFlatbufferTest, NegativeFileSizeReturnsErrorAndClosesFile) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulClose(); @@ -182,6 +185,7 @@ TEST_F(LoadFlatbufferTest, NegativeFileSizeReturnsErrorAndClosesFile) TEST_F(LoadFlatbufferTest, ReadFailureReturnsErrorAndClosesFile) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(kTestFileSize); SetUpSuccessfulClose(); @@ -198,6 +202,7 @@ TEST_F(LoadFlatbufferTest, ReadFailureReturnsErrorAndClosesFile) TEST_F(LoadFlatbufferTest, ReadReturnsZeroBytesReportsUnexpectedEof) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(kTestFileSize); SetUpSuccessfulClose(); @@ -214,6 +219,7 @@ TEST_F(LoadFlatbufferTest, ReadReturnsZeroBytesReportsUnexpectedEof) TEST_F(LoadFlatbufferTest, PartialReadsAreHandledCorrectly) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); const std::vector expected_data{'A', 'B', 'C', 'D', 'E'}; SetUpSuccessfulOpen(); @@ -247,6 +253,7 @@ TEST_F(LoadFlatbufferTest, PartialReadsAreHandledCorrectly) TEST_F(LoadFlatbufferTest, InterruptedReadIsRetried) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); const std::vector expected_data{'X', 'Y'}; const auto eintr_error = score::os::Error::createFromErrno(EINTR); @@ -272,6 +279,7 @@ TEST_F(LoadFlatbufferTest, InterruptedReadIsRetried) TEST_F(LoadFlatbufferTest, EmptyFileReturnsEmptyVector) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(0); SetUpSuccessfulClose(); @@ -285,6 +293,7 @@ TEST_F(LoadFlatbufferTest, EmptyFileReturnsEmptyVector) TEST_F(LoadFlatbufferTest, CloseFailureOnEmptyFilePropagatesCloseError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(0); @@ -300,6 +309,7 @@ TEST_F(LoadFlatbufferTest, CloseFailureOnEmptyFilePropagatesCloseError) TEST_F(LoadFlatbufferTest, CloseFailureAfterSuccessfulReadPropagatesCloseError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); const std::vector expected_data{'Z'}; SetUpSuccessfulOpen(); @@ -318,6 +328,7 @@ TEST_F(LoadFlatbufferTest, CloseFailureAfterSuccessfulReadPropagatesCloseError) TEST_F(LoadFlatbufferTest, CloseFailureAfterReadErrorPropagatesOriginalError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(kTestFileSize); @@ -336,6 +347,7 @@ TEST_F(LoadFlatbufferTest, CloseFailureAfterReadErrorPropagatesOriginalError) TEST_F(LoadFlatbufferTest, ReadErrorAfterPartialReadReportsError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(4); SetUpSuccessfulClose(); @@ -358,6 +370,7 @@ TEST_F(LoadFlatbufferTest, ReadErrorAfterPartialReadReportsError) TEST_F(LoadFlatbufferTest, UnexpectedEofAfterPartialReadReportsError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(4); SetUpSuccessfulClose(); @@ -379,6 +392,7 @@ TEST_F(LoadFlatbufferTest, UnexpectedEofAfterPartialReadReportsError) TEST_F(LoadFlatbufferTest, MultipleInterruptsFollowedBySuccessfulRead) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); const std::vector expected_data{'I'}; const auto eintr_error = score::os::Error::createFromErrno(EINTR); @@ -405,6 +419,7 @@ TEST_F(LoadFlatbufferTest, MultipleInterruptsFollowedBySuccessfulRead) TEST_F(LoadFlatbufferTest, CloseFailureAfterFstatErrorPropagatesFstatError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); const auto stat_error = score::os::Error::createFromErrno(EBADF); @@ -422,6 +437,7 @@ TEST_F(LoadFlatbufferTest, CloseFailureAfterFstatErrorPropagatesFstatError) TEST_F(LoadFlatbufferTest, ResizeBadAllocReturnsEnomemAndClosesFile) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(kTestFileSize); SetUpSuccessfulClose(); @@ -436,6 +452,7 @@ TEST_F(LoadFlatbufferTest, ResizeBadAllocReturnsEnomemAndClosesFile) TEST_F(LoadFlatbufferTest, ResizeCustomExceptionReturnsErrorAndClosesFile) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); SetUpSuccessfulFstat(kTestFileSize); SetUpSuccessfulClose(); @@ -450,6 +467,7 @@ TEST_F(LoadFlatbufferTest, ResizeCustomExceptionReturnsErrorAndClosesFile) TEST_F(LoadFlatbufferTest, CloseFailureAfterNegativeSizePropagatesInvalidArgument) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); SetUpSuccessfulOpen(); EXPECT_CALL(os_.stat, fstat(kTestFd, _)) @@ -478,6 +496,7 @@ const score::filesystem::Path kNonExistent{"/tmp/score_flatbuffers_nonexistent_x TEST(LoadBufferPublicApiTest, VectorOverloadSuccessPathReturnsEmptyVector) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "structural-branch-coverage"); RecordProperty("DerivationTechnique", "boundary-values"); @@ -488,6 +507,7 @@ TEST(LoadBufferPublicApiTest, VectorOverloadSuccessPathReturnsEmptyVector) TEST(LoadBufferPublicApiTest, VectorOverloadErrorPathReturnsError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "structural-branch-coverage"); RecordProperty("TestType", "fault-injection"); @@ -498,6 +518,7 @@ TEST(LoadBufferPublicApiTest, VectorOverloadErrorPathReturnsError) TEST(LoadBufferPublicApiTest, PmrVectorOverloadSuccessPathReturnsEmpty) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "structural-branch-coverage"); RecordProperty("DerivationTechnique", "boundary-values"); @@ -509,6 +530,7 @@ TEST(LoadBufferPublicApiTest, PmrVectorOverloadSuccessPathReturnsEmpty) TEST(LoadBufferPublicApiTest, PmrVectorOverloadErrorPathReturnsError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "structural-branch-coverage"); RecordProperty("TestType", "fault-injection"); diff --git a/score/flatbuffers/details/version_reader_test.cpp b/score/flatbuffers/details/version_reader_test.cpp index b976ed5e5d..bbe0a4662c 100644 --- a/score/flatbuffers/details/version_reader_test.cpp +++ b/score/flatbuffers/details/version_reader_test.cpp @@ -127,6 +127,7 @@ class VersionReaderTest : public ::testing::Test TEST_F(VersionReaderTest, GetVersionVectorRejectsEmptyVector) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", @@ -143,6 +144,7 @@ TEST_F(VersionReaderTest, GetVersionVectorRejectsEmptyVector) TEST_F(VersionReaderTest, GetVersionSpanRejectsNullPointer) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", "kNullDataPointer is returned when span.data() is null"); @@ -159,6 +161,7 @@ TEST_F(VersionReaderTest, GetVersionSpanRejectsNullPointer) TEST_F(VersionReaderTest, GetVersionRejectsGarbageBuffer) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", @@ -186,6 +189,7 @@ TEST_F(VersionReaderTest, GetVersionRejectsGarbageBuffer) TEST_F(VersionReaderTest, GetVersionRejectsTooSmallBuffer) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty( @@ -214,6 +218,7 @@ TEST_F(VersionReaderTest, GetVersionRejectsTooSmallBuffer) TEST_F(VersionReaderTest, GetVersionRejectsBufferWithoutVersionInfo) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty( @@ -242,6 +247,7 @@ TEST_F(VersionReaderTest, GetVersionRejectsBufferWithoutVersionInfo) TEST_F(VersionReaderTest, GetVersionRejectsWrongTypeMarker) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", @@ -269,6 +275,7 @@ TEST_F(VersionReaderTest, GetVersionRejectsWrongTypeMarker) TEST_F(VersionReaderTest, GetVersionRejectsNullTypeMarker) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty( @@ -297,6 +304,7 @@ TEST_F(VersionReaderTest, GetVersionRejectsNullTypeMarker) TEST_F(VersionReaderTest, GetVersionRejectsEmptyTypeMarker) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", @@ -332,6 +340,7 @@ static const score::flatbuffers::BufferVersionEnvelope* ReturnNullEnvelope(const TEST_F(VersionReaderTest, GetVersionReturnsNullDataPointerWhenEnvelopeIsNull) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", @@ -349,6 +358,7 @@ TEST_F(VersionReaderTest, GetVersionReturnsNullDataPointerWhenEnvelopeIsNull) TEST_F(VersionReaderTest, GetVersionRejectsBufferWithNullIdentifier) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", @@ -406,6 +416,7 @@ INSTANTIATE_TEST_SUITE_P( TEST_P(InvalidIdentifierTest, GetVersionRejectsBufferWithInvalidIdentifier) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", @@ -445,6 +456,7 @@ TEST_P(InvalidIdentifierTest, GetVersionRejectsBufferWithInvalidIdentifier) // constructed, so GetVersion / VerifyVersion can never observe a \x00 identifier. TEST(VersionBufferNullByteIdentifierTest, BuildingBufferWithNullByteIdentifierAborts) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", @@ -486,6 +498,7 @@ INSTANTIATE_TEST_SUITE_P( TEST_P(VersionBufferParamTest, ReadsIdentifierAndVersionCorrectly) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__buffer_identification"); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", "GetVersion correctly extracts identifier, major and minor from a built buffer"); @@ -524,6 +537,7 @@ TEST_P(VersionBufferParamTest, ReadsIdentifierAndVersionCorrectly) TEST_F(VersionReaderTest, VerifyVersionVectorRejectsEmptyVector) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty( @@ -543,6 +557,7 @@ TEST_F(VersionReaderTest, VerifyVersionVectorRejectsEmptyVector) TEST_F(VersionReaderTest, VerifyVersionPropagatesGetVersionError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "fault-injection"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", @@ -574,6 +589,7 @@ TEST_F(VersionReaderTest, VerifyVersionPropagatesGetVersionError) TEST_P(VersionBufferParamTest, VerifyVersionExactMatchSucceeds) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", @@ -600,6 +616,7 @@ TEST_P(VersionBufferParamTest, VerifyVersionExactMatchSucceeds) TEST_P(VersionBufferParamTest, VerifyVersionFailsOnMajorMismatch) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", @@ -632,6 +649,7 @@ TEST_P(VersionBufferParamTest, VerifyVersionFailsOnMajorMismatch) TEST_P(VersionBufferParamTest, VerifyVersionFailsOnMinorMismatch) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", @@ -664,6 +682,7 @@ TEST_P(VersionBufferParamTest, VerifyVersionFailsOnMinorMismatch) TEST_P(VersionBufferParamTest, VerifyVersionFailsOnIdentifierMismatch) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "requirements-based"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", @@ -695,6 +714,7 @@ TEST_P(VersionBufferParamTest, VerifyVersionFailsOnIdentifierMismatch) TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumSucceedsWhenMinorEquals) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", @@ -724,6 +744,7 @@ TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumSucceedsWhenMinorEquals) TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumSucceedsWhenActualMinorIsHigher) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", @@ -759,6 +780,7 @@ TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumSucceedsWhenActualMinorI TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumFailsWhenActualMinorIsLower) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty( @@ -799,6 +821,7 @@ TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumFailsWhenActualMinorIsLo TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumFailsOnIdentifierMismatch) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty( @@ -835,6 +858,7 @@ TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumFailsOnIdentifierMismatc TEST_P(VersionBufferParamTest, VerifyVersionMinorMinimumFailsOnMajorMismatch) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__version_check"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", diff --git a/score/flatbuffers/test/load_buffer_test.cpp b/score/flatbuffers/test/load_buffer_test.cpp index 65853c2240..3fb8658b0b 100644 --- a/score/flatbuffers/test/load_buffer_test.cpp +++ b/score/flatbuffers/test/load_buffer_test.cpp @@ -125,6 +125,7 @@ void ExpectPmrVectorLoad(const score::filesystem::Path& path, const score::os::E TEST_F(LoadFlatbufferTest, LoadsRegularFileContents) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "equivalence-classes"); RecordProperty("Description", "loaded content from file"); @@ -138,6 +139,7 @@ TEST_F(LoadFlatbufferTest, LoadsRegularFileContents) TEST_F(LoadFlatbufferTest, LoadsEmptyFileAsEmptyVector) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", "empty file is loaded as empty vector"); @@ -150,6 +152,7 @@ TEST_F(LoadFlatbufferTest, LoadsEmptyFileAsEmptyVector) TEST_F(LoadFlatbufferTest, LoadsBinaryContentIncludingNullBytes) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", "null bytes are not truncated, file is read in binary mode"); @@ -163,6 +166,7 @@ TEST_F(LoadFlatbufferTest, LoadsBinaryContentIncludingNullBytes) TEST_F(LoadFlatbufferTest, LoadsSingleByteFile) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", "single byte is loaded from file"); @@ -176,6 +180,7 @@ TEST_F(LoadFlatbufferTest, LoadsSingleByteFile) TEST_F(LoadFlatbufferTest, LoadsLarge5MBFileCorrectly) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", "large content is loaded from file"); @@ -195,6 +200,7 @@ TEST_F(LoadFlatbufferTest, LoadsLarge5MBFileCorrectly) TEST_F(LoadFlatbufferTest, LoadsFileContainingOnlyNullBytes) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("DerivationTechnique", "boundary-values"); RecordProperty("Description", "only nulls is loaded from file"); @@ -208,6 +214,7 @@ TEST_F(LoadFlatbufferTest, LoadsFileContainingOnlyNullBytes) TEST_F(LoadFlatbufferTest, NonexistentFileReturnsError) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("TestType", "fault-injection"); RecordProperty("Description", "kNoSuchFileOrDirectory is returned if file does not exist"); @@ -220,6 +227,7 @@ TEST_F(LoadFlatbufferTest, NonexistentFileReturnsError) TEST_F(LoadFlatbufferTest, NoReadPermissionReturnsPermissionDenied) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("TestType", "fault-injection"); RecordProperty("Description", "kPermissionDenied is returned if the file cannot be accessed"); @@ -238,6 +246,7 @@ TEST_F(LoadFlatbufferTest, NoReadPermissionReturnsPermissionDenied) TEST_F(LoadFlatbufferTest, DirectoryPathFailsOnReadWithIsADirectory) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("TestType", "fault-injection"); RecordProperty("Description", "kIsADirectory is returned if path is a directory instead of a file"); @@ -250,6 +259,7 @@ TEST_F(LoadFlatbufferTest, DirectoryPathFailsOnReadWithIsADirectory) TEST_F(LoadFlatbufferTest, PmrOverloadFailsOnResize) { + RecordProperty("PartiallyVerifies", "comp_req__flatbuffers__access"); RecordProperty("TestType", "interface-test"); RecordProperty("TestType", "fault-injection"); RecordProperty("Description", From 105de4a4f56bd443465d13d1966c1ae45d46e5b3 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Thu, 20 Aug 2026 13:52:46 +0000 Subject: [PATCH 2/6] docs: pin score_docs_as_code to 4ea902e (ankr_mod_verf_report) Update git_override commit to the latest version of the score_module_verification_report branch, which includes: - fix: strip trailing slash from project_url to avoid double-slash URLs - fix: remove feature-id name guessing (feature section skipped when omitted) --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 0fdb49da2f..093c4197af 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -110,7 +110,7 @@ bazel_dep(name = "score_docs_as_code", version = "7.1.0", dev_dependency = True) # is merged and a release with the extension is published. git_override( module_name = "score_docs_as_code", - commit = "5c956f596f1ad223c06a3625bf4fa0f12c0da82b", + commit = "4ea902eda75ad0b3fd7dcd3c331ad8ba40cd05dc", remote = "https://github.com/eclipse-score/docs-as-code.git", ) From 01c79aef6cab96d84c6351038ccc48ffc58efab3 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Tue, 25 Aug 2026 13:24:42 +0000 Subject: [PATCH 3/6] feat(module-verification-report): integrate docs_and_test coverage pipeline - BUILD: add docs_and_test() target 'module_verification_report' running coverage for score/bitmanipulation, score/flatbuffers and score/filesystem, then building the docs; update external_needs to score_process_description. - MODULE.bazel: pin score_docs_as_code to commit 5402638 (ankr_mod_verf_report), bump score_platform to 0.7.1 and add score_process_description@2.1.2 (required transitively by the new score_docs_as_code pin). - docs/reporting/module_verification_report.rst: add the mandatory :safety:/:security:/:status:/:verification-method: options to the module-verification-report directive; without them the directive silently rendered an empty report. --- BUILD | 25 ++++++++++++++++++- MODULE.bazel | 11 +++----- MODULE.bazel.lock | 9 ++++--- docs/reporting/module_verification_report.rst | 4 +++ 4 files changed, 36 insertions(+), 13 deletions(-) diff --git a/BUILD b/BUILD index b199b81530..db6e1e514a 100644 --- a/BUILD +++ b/BUILD @@ -14,6 +14,7 @@ load("@hedron_compile_commands//:refresh_compile_commands.bzl", "refresh_compile_commands") load("@score_bazel_tools_cc//quality:defs.bzl", "quality_clang_tidy_config") load("@score_docs_as_code//:docs.bzl", "docs") +load("@score_docs_as_code//:bzl/docs_and_test.bzl", "docs_and_test") load("@score_tooling//:defs.bzl", "copyright_checker", "dash_license_checker", "rust_coverage_report", "use_format_targets") load("//:project_config.bzl", "PROJECT_CONFIG") load(":qemu.bzl", "qemu_aarch64") @@ -21,11 +22,33 @@ load(":qemu.bzl", "qemu_aarch64") docs( external_needs = [ "@score_platform//:needs_json_file", - "@score_process//:needs_json_file", + "@score_process_description//:needs_json_file", ], source_dir = "docs", ) +# Builds/serves the module verification report for a small, known-good subset +# of //score/... with coverage. The full //score/... tree currently has ~20 +# pre-existing, unrelated build failures under bl-aarch64-linux (deprecated +# logging API under -Werror=deprecated-declarations, and a Rust nightly-only +# feature used by score_log_fmt), so this uses a reduced scope sufficient to +# validate the docs_and_test integration and coverage report rendering. +# +# Extra Bazel flags (e.g. --config=…) go on the command line after --, e.g.:: +# +# bazel run //:module_verification_report -- --test-flag=--config=bl-aarch64-linux +# +# See @score_docs_as_code//:bzl/docs_and_test.bzl for the underlying driver. +docs_and_test( + name = "module_verification_report", + test_targets = [ + "//score/bitmanipulation/...", + "//score/flatbuffers/...", + "//score/filesystem/...", + ], + docs_target = "//:docs", +) + # Generate `compile_commands.json`. # Required for `clangd` support. refresh_compile_commands( diff --git a/MODULE.bazel b/MODULE.bazel index 093c4197af..2f6734ebd4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -103,18 +103,13 @@ bazel_dep(name = "score_toolchains_rust", version = "0.10.0", dev_dependency = T ## Custom Module Loading bazel_dep(name = "score_docs_as_code", version = "7.1.0", dev_dependency = True) - -# TEMPORARY: pin score_docs_as_code to the ankr_mod_verf_report branch that -# adds the ``score_module_verification_report`` sub-extension. -# Tracks eclipse-score/docs-as-code#730. Remove this override once the branch -# is merged and a release with the extension is published. git_override( module_name = "score_docs_as_code", - commit = "4ea902eda75ad0b3fd7dcd3c331ad8ba40cd05dc", + commit = "5402638e533e75133743c42d2d01bd411a62f75a", remote = "https://github.com/eclipse-score/docs-as-code.git", ) -bazel_dep(name = "score_process", version = "2.0.3", dev_dependency = True) +bazel_dep(name = "score_process_description", version = "2.1.2", dev_dependency = True) bazel_dep(name = "score_tooling", version = "1.3.1", dev_dependency = True) # score_tooling declares trlc and lobster as regular bazel_deps with their own @@ -132,7 +127,7 @@ git_override( remote = "https://github.com/bmw-software-engineering/lobster.git", ) -bazel_dep(name = "score_platform", version = "0.6.4", dev_dependency = True) +bazel_dep(name = "score_platform", version = "0.7.1", dev_dependency = True) ## Configure the python toolchain diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index ed2730474e..616ed04a6c 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -857,12 +857,13 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_bazel_tools_python/0.1.3/source.json": "f87907b20372ca2c4ad15719cba03423577ed1ea8392c7373eb37f73499decce", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.11.0/MODULE.bazel": "fb6041c96e949a151307b4690ee81cf5d9254d6bf79540184b16567b04397171", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.11.0/source.json": "b379a2499cf06f16de65c2981665c3723afba9e858ed16b453f044882067f56f", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.6.4/MODULE.bazel": "dac9bdb1dd0934bd54549587d0d6d2db93c8298fa190fccd417fff4e0f4a7519", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.6.4/source.json": "a77419136e32cd79a51557dbbf67a73203d67b1b92102a3970720959f31b00fd", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.7.1/MODULE.bazel": "be2ae8861842689353b92b0cbc111c94e1bea57675692fe3b029ccd211c0b74c", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_platform/0.7.1/source.json": "f6fbb5a258653c11ee9c48242c8b078bf05f7ed461f6cae5120a6adbd928aa09", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/1.3.2/MODULE.bazel": "a32390ef217cef9a811408b0a1c5aeed1398c377aa846f5d5416d7b95b4e4366", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.2/MODULE.bazel": "6d2b227bb6880e9f6871cc8cf94c83399e35c188424f7e9b826262de8149ed43", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.3/MODULE.bazel": "d9359f1cb7e460a5eb6b7e5d2185bcc6ed7c9f4a31f560d6a703549ca6366ed7", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.3/source.json": "0ea635f75ded5225494b709a441488f80be0db0ded4a9786367477ecdbcf42b0", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process/2.0.2/source.json": "5ae55f0dabcddeb5bfae16ce480e2c065f907d2b0ed6a8e4ed7409b259b004ee", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process_description/2.1.2/MODULE.bazel": "1076b36d2d05ab1a18df0746f6a545869eec6927019d651af99d99ef056e2023", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_process_description/2.1.2/source.json": "f76099f076243e2641803971e2a95ed27f24756c9bdda5d10a808c664996f0fc", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_qnx_unit_tests/0.2.0/MODULE.bazel": "aaffff67916dd058737aac8e04368f12b214e7646ff58adbab48e6429d1a5410", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_qnx_unit_tests/0.2.0/source.json": "c40a614fd88beab7cb65b8640debd44eff3fbc32a7839734ef1112f265d2eeef", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rules_imagefs/0.0.3/MODULE.bazel": "d87fcd3485438284fa96d6a5a81923d6b6672468947423517cc43c4d7692ca6a", diff --git a/docs/reporting/module_verification_report.rst b/docs/reporting/module_verification_report.rst index aa026ce86c..8e0339ac4f 100644 --- a/docs/reporting/module_verification_report.rst +++ b/docs/reporting/module_verification_report.rst @@ -29,6 +29,10 @@ associated components. .. module-verification-report:: :module-id: mod__baselibs :feature-id: feat__baselibs + :safety: ASIL_B + :security: YES + :status: valid + :verification-method: test_and_inspection :components: comp__baselibs_json, comp__baselibs_memory_shared, comp__baselibs_result, From 1425e3dab05ee59333460cbddbcfc6fe41e1bbfb Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Tue, 25 Aug 2026 13:47:50 +0000 Subject: [PATCH 4/6] ci: add Docs and Test workflow running the module_verification_report docs_and_test target Mirrors coverage_report.yml's structure but runs the new docs_and_test-based 'module_verification_report' target (tests + coverage + docs build) on bl-x86_64-linux, and uploads the rendered docs (incl. the module verification report with coverage tables) as an artifact. --- .github/workflows/docs_and_test.yml | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/docs_and_test.yml diff --git a/.github/workflows/docs_and_test.yml b/.github/workflows/docs_and_test.yml new file mode 100644 index 0000000000..94c4ce18ae --- /dev/null +++ b/.github/workflows/docs_and_test.yml @@ -0,0 +1,48 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +name: Docs and Test +permissions: + contents: read + actions: write +on: + pull_request: + types: [opened, reopened, synchronize] + push: + branches: + - main + merge_group: + types: [checks_requested] + workflow_call: +jobs: + docs-and-test: + runs-on: ubuntu-24.04 + steps: + - uses: eclipse-score/more-disk-space@6a3b48901846bf7f8cc985925157d71a8973e61f # v1 + with: + level: 4 + - name: Checkout Repository + uses: actions/checkout@v6 + - name: Setup Bazel Cache + uses: eclipse-score/cicd-actions/setup-bazel-cache@659dcbed63f6b7fbde88c7850125ea0a0a92f939 + with: + unique-cache-name: ${{ github.workflow }}-${{ github.job }} + - name: Run docs_and_test (module verification report) + run: | + bazel run //:module_verification_report -- --test-flag=--config=bl-x86_64-linux + - name: Upload Module Verification Report + uses: actions/upload-artifact@v6 + with: + name: ${{ github.event.repository.name }}_module_verification_report + path: _build/ + include-hidden-files: true + retention-days: 10 From c5f6614e3fe35b3e62b4fb1aebc0f3f286eede40 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Tue, 25 Aug 2026 13:59:26 +0000 Subject: [PATCH 5/6] fix(bzlmod): score_docs_as_code must be a regular (non-dev) dependency score/json/BUILD and other component BUILD files load @score_docs_as_code//:docs.bzl (docs_bundle) unconditionally at the package level, not just for the docs_and_test driver. Declaring it as dev_dependency = True (introduced while resolving the main merge conflict) causes bzlmod to strip this dependency entirely whenever score_baselibs is consumed as a non-root module - e.g. by examples/integration's local_path_override - breaking 'Build and Test x86_64-linux/qnx/aarch64-qnx (examples/integration)' with: ERROR: ... Unable to find package for @@[unknown repo 'score_docs_as_code']//:docs.bzl main declares this bazel_dep without dev_dependency, restore that. --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index cb0c59a5f9..342c81a987 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -102,7 +102,7 @@ bazel_dep(name = "score_toolchains_rust", version = "0.10.0", dev_dependency = T ## Custom Module Loading -bazel_dep(name = "score_docs_as_code", version = "8.0.0", dev_dependency = True) +bazel_dep(name = "score_docs_as_code", version = "8.0.0") git_override( module_name = "score_docs_as_code", commit = "5402638e533e75133743c42d2d01bd411a62f75a", From 86033567d41fcf44e3a711fb48aa23c677ca81b3 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov Date: Tue, 25 Aug 2026 14:04:38 +0000 Subject: [PATCH 6/6] ci(docs_and_test): install graphviz for PlantUML/dot The docs build renders PlantUML diagrams which require Graphviz's 'dot' executable on PATH. Unlike the reusable eclipse-score/cicd-workflows docs.yml (used by build_linux.yml), our workflow runs bazel directly on a bare runner, so graphviz must be installed explicitly (mirrors the 'Install lcov' step in coverage_report.yml). --- .github/workflows/docs_and_test.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/docs_and_test.yml b/.github/workflows/docs_and_test.yml index 94c4ce18ae..74c5e5ead5 100644 --- a/.github/workflows/docs_and_test.yml +++ b/.github/workflows/docs_and_test.yml @@ -32,6 +32,10 @@ jobs: level: 4 - name: Checkout Repository uses: actions/checkout@v6 + - name: Install Graphviz + run: | + sudo apt-get update + sudo apt-get install -y graphviz - name: Setup Bazel Cache uses: eclipse-score/cicd-actions/setup-bazel-cache@659dcbed63f6b7fbde88c7850125ea0a0a92f939 with: