Skip to content

Commit 430cde9

Browse files
committed
[rules score] fix tests
- execute Rules Score Tests from Test Module in CI - Fix Test Module dependencies - Fix Failing Tests
1 parent c310490 commit 430cde9

10 files changed

Lines changed: 105 additions & 40 deletions

File tree

.bazelignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@
1313

1414
python_basics/integration_tests
1515
starpls/integration_tests
16+
# Should be run from its own directory (separate Module)
17+
bazel/rules/rules_score/test

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8.3.1
1+
8.5.1

.github/workflows/tests.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ jobs:
4141
bazel test //coverage/tests:all
4242
- name: Run rules_score tests
4343
run: |
44-
bazel test //bazel/rules/rules_score/...
44+
cd bazel/rules/rules_score/test
45+
bazel test //...
4546
- name: Run Plantuml Tooling clippy
4647
run: |
4748
bazel build //plantuml/... --config=clippy

bazel/rules/rules_score/private/verbosity.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
4444
# Merge into a rule's attrs dict with ``**VERBOSITY_ATTR``.
4545
VERBOSITY_ATTR = {
4646
"_verbosity": attr.label(
47-
default = Label("//bazel/rules/rules_score:verbosity"),
47+
default = Label("@score_tooling//bazel/rules/rules_score:verbosity"),
4848
doc = "Verbosity level build setting (warn/info/debug).",
4949
),
5050
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8.3.1
1+
8.5.1

bazel/rules/rules_score/test/BUILD

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
load("@aspect_rules_py//py:defs.bzl", "py_binary")
2+
13
# *******************************************************************************
24
# Copyright (c) 2025 Contributors to the Eclipse Foundation
35
#
@@ -26,6 +28,7 @@ load(
2628
"unit",
2729
"unit_design",
2830
)
31+
load("@score_tooling//bazel/rules/rules_score:sphinx_toolchain.bzl", "sphinx_toolchain")
2932
load("@trlc//:trlc.bzl", "trlc_requirements", "trlc_requirements_test")
3033
load(
3134
":html_generation_test.bzl",
@@ -93,6 +96,39 @@ load(
9396

9497
package(default_visibility = ["//visibility:public"])
9598

99+
# ============================================================================
100+
# Sphinx Toolchain — uses score_docs_as_code so score_metamodel is importable
101+
# ============================================================================
102+
103+
exports_files(["template/conf.template.py"])
104+
105+
py_binary(
106+
name = "score_build",
107+
srcs = ["@score_tooling//bazel/rules/rules_score:src/sphinx_wrapper.py"],
108+
main = "@score_tooling//bazel/rules/rules_score:src/sphinx_wrapper.py",
109+
package_collisions = "warning",
110+
visibility = ["//visibility:public"],
111+
deps = [
112+
"@score_docs_as_code//src:plantuml_for_python",
113+
"@score_docs_as_code//src/extensions/score_sphinx_bundle",
114+
"@score_tooling//bazel/rules/rules_score:bazel_sphinx_needs",
115+
"@score_tooling//bazel/rules/rules_score:sphinx_module_ext",
116+
],
117+
)
118+
119+
sphinx_toolchain(
120+
name = "score_sphinx_toolchain",
121+
conf_template = "//:template/conf.template.py",
122+
html_merge_tool = "@score_tooling//bazel/rules/rules_score:sphinx_html_merge",
123+
sphinx = ":score_build",
124+
)
125+
126+
toolchain(
127+
name = "score_toolchain",
128+
toolchain = ":score_sphinx_toolchain",
129+
toolchain_type = "@score_tooling//bazel/rules/rules_score:toolchain_type",
130+
)
131+
96132
# ============================================================================
97133
# Test Fixtures - Module Definitions
98134
# ============================================================================
@@ -274,7 +310,7 @@ unit_design(
274310
unit(
275311
name = "test_unit",
276312
testonly = True,
277-
scope = ["//bazel/rules/rules_score/test:mock_lib1"],
313+
scope = ["//:mock_lib1"],
278314
tests = [":test_unit_tests"],
279315
unit_design = [":test_unit_design"],
280316
implementation = [
@@ -700,26 +736,11 @@ aous_rst_sphinx_test(
700736
requirements_rst_test_suite(name = "requirements_rst_tests")
701737

702738
# ============================================================================
703-
# Image srcs Tests
739+
# Image srcs Tests (defined in sub-package to avoid workspace-root edge case)
704740
# ============================================================================
705-
706-
# Fixture: feature_requirements with image_srcs
707-
feature_requirements(
708-
name = "feat_req_with_image",
709-
srcs = ["fixtures/seooc_test/feature_requirements.trlc"],
710-
image_srcs = [
711-
"fixtures/image_srcs/diagrams/arch.svg",
712-
"fixtures/image_srcs/diagrams/arch.png",
713-
],
714-
deps = [":asr_trlc"],
715-
)
716-
717-
image_srcs_sphinx_sources_test(
718-
name = "image_srcs_sphinx_sources_test",
719-
target_under_test = ":feat_req_with_image",
720-
)
721-
722-
requirements_image_test_suite(name = "requirements_image_tests")
741+
# feat_req_with_image and image_srcs_sphinx_sources_test live in
742+
# //fixtures/image_srcs so that ctx.label.package is non-empty and
743+
# subrule_trlc_image_stage can strip the prefix correctly.
723744

724745
# ============================================================================
725746
# Combined Test Suite
@@ -736,7 +757,7 @@ requirements_image_test_suite(name = "requirements_image_tests")
736757
trlc_requirements(
737758
name = "safety_measures_fixtures",
738759
srcs = ["fixtures/seooc_test/safety_measures_fixtures.trlc"],
739-
spec = ["//bazel/rules/rules_score/trlc/config:score_requirements_model"],
760+
spec = ["@score_tooling//bazel/rules/rules_score/trlc/config:score_requirements_model"],
740761
)
741762

742763
trlc_requirements_test(
@@ -748,22 +769,22 @@ py_test(
748769
name = "test_safety_analysis_tools",
749770
size = "small",
750771
srcs = ["test_safety_analysis_tools.py"],
751-
deps = ["//bazel/rules/rules_score:safety_analysis_tools"],
772+
deps = ["@score_tooling//bazel/rules/rules_score:safety_analysis_tools"],
752773
)
753774

754775
py_test(
755776
name = "test_aou_forwarding_to_lobster",
756777
size = "small",
757778
srcs = ["test_aou_forwarding_to_lobster.py"],
758-
deps = ["//bazel/rules/rules_score:aou_forwarding_to_lobster"],
779+
deps = ["@score_tooling//bazel/rules/rules_score:aou_forwarding_to_lobster"],
759780
)
760781

761782
py_test(
762783
name = "test_rst_to_trlc",
763784
size = "small",
764785
srcs = ["rst_to_trlc_test.py"],
765786
main = "rst_to_trlc_test.py",
766-
deps = ["//bazel/rules/rules_score:rst_to_trlc_lib"],
787+
deps = ["@score_tooling//bazel/rules/rules_score:rst_to_trlc_lib"],
767788
)
768789

769790
py_test(
@@ -782,7 +803,6 @@ py_test(
782803
test_suite(
783804
name = "all_tests",
784805
tests = [
785-
":requirements_image_tests",
786806
":requirements_rst_tests",
787807
":seooc_tests",
788808
":sphinx_module_tests",
@@ -791,5 +811,6 @@ test_suite(
791811
":test_safety_analysis_tools",
792812
":test_trlc_rst_image_rendering",
793813
":unit_component_tests",
814+
"//fixtures/image_srcs:requirements_image_tests",
794815
],
795816
)

bazel/rules/rules_score/test/MODULE.bazel

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ pip.parse(
5555
use_repo(pip, "pip_tooling_test")
5656

5757
bazel_dep(name = "score_docs_as_code", version = "3.0.1", dev_dependency = True)
58+
59+
bazel_dep(name = "googletest", version = "1.17.0.bcr.2")
5860
# bazel_dep(name = "score_platform", version = "0.5.0")
5961
# bazel_dep(name = "score_process", version = "1.3.2")
6062

@@ -71,13 +73,13 @@ register_toolchains(
7173
bazel_dep(name = "trlc", version = "0.0.0")
7274
git_override(
7375
module_name = "trlc",
74-
commit = "7f06d0396fd0e5f02b657d25700775af5113b7e0",
76+
commit = "c4c531b9d667085daa09dfc1590edacc314bfda4",
7577
remote = "https://github.com/bmw-software-engineering/trlc.git",
7678
)
7779

7880
bazel_dep(name = "lobster", version = "0.0.0")
7981
git_override(
8082
module_name = "lobster",
81-
commit = "56881461f9d3fde2918d1731aa5937aaf64cd67c",
83+
commit = "2792e2daee2cf524fdc7b1545fd3537791ebc36c",
8284
remote = "https://github.com/bmw-software-engineering/lobster.git",
8385
)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# *******************************************************************************
2+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
3+
#
4+
# See the NOTICE file(s) distributed with this work for additional
5+
# information regarding copyright ownership.
6+
#
7+
# This program and the accompanying materials are made available under the
8+
# terms of the Apache License Version 2.0 which is available at
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# SPDX-License-Identifier: Apache-2.0
12+
# *******************************************************************************
13+
14+
# This sub-package exists so that ctx.label.package == "fixtures/image_srcs"
15+
# when feature_requirements stages image files. subrule_trlc_image_stage
16+
# strips package_prefix from short_path to produce package-relative paths
17+
# (e.g. "diagrams/arch.png"); this only works when the package is not the
18+
# workspace root ("").
19+
20+
load(
21+
"@score_tooling//bazel/rules/rules_score:rules_score.bzl",
22+
"feature_requirements",
23+
)
24+
load(
25+
"//:requirements_image_test.bzl",
26+
"image_srcs_sphinx_sources_test",
27+
"requirements_image_test_suite",
28+
)
29+
30+
package(default_visibility = ["//visibility:public"])
31+
32+
feature_requirements(
33+
name = "feat_req_with_image",
34+
srcs = ["//:fixtures/seooc_test/feature_requirements.trlc"],
35+
image_srcs = [
36+
"diagrams/arch.svg",
37+
"diagrams/arch.png",
38+
],
39+
deps = ["//:asr_trlc"],
40+
)
41+
42+
image_srcs_sphinx_sources_test(
43+
name = "image_srcs_sphinx_sources_test",
44+
target_under_test = ":feat_req_with_image",
45+
)
46+
47+
requirements_image_test_suite(name = "requirements_image_tests")

bazel/rules/rules_score/test/trlc_rst_image_rendering_test.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,11 @@ def setUp(self):
4848
self._tmpdir = tempfile.mkdtemp()
4949
self._out = os.path.join(self._tmpdir, "output.rst")
5050
self._fixture_trlc = _runfile(
51-
"bazel",
52-
"rules",
53-
"rules_score",
54-
"test",
5551
"fixtures",
5652
"image_requirements",
5753
"image_requirements.trlc",
5854
)
5955
self._fixture_rsl = _runfile(
60-
"bazel",
61-
"rules",
62-
"rules_score",
63-
"test",
6456
"fixtures",
6557
"image_requirements",
6658
"schema.rsl",

python_basics/.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8.3.0
1+
8.5.1

0 commit comments

Comments
 (0)