blob: e38945ebba18c7e9840eef61e75ecad315a463e0 [file] [edit]
load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
load("//bazel/private:zephyr_transition.bzl", "resolve_board_id")
def _transition_test_impl(ctx):
env = unittest.begin(ctx)
package_to_boards = {
"boards": ["native_sim", "board1"],
"boards/sub": ["sub"],
"boards/soc": ["board2/soc2", "board3/soc3"],
"boards/single": ["board2"],
"boards/fallback": ["my_board"],
}
def make_label(name, pkg):
return struct(name = name, package = pkg)
def check_resolve(expected, name, pkg):
asserts.equals(
env,
expected,
resolve_board_id(
make_label(name, pkg),
pkg,
package_to_boards.get(pkg, []),
package_to_boards,
),
)
# Rule A: Default Shortcut (exactly one board)
check_resolve("board2", "default", "boards/single")
# Rule B: SoC/Variant Match (explicit ends-with)
check_resolve("board2/soc2", "soc2", "boards/soc")
# Rule B: SoC/Variant Match - Fallback for single base board
check_resolve("my_board/my_soc", "my_soc", "boards/fallback")
return unittest.end(env)
transition_test = unittest.make(_transition_test_impl)
def transition_test_suite(name):
unittest.suite(
name,
transition_test,
)