blob: 871a42c92cacadf227c8d32ac1b94089d25604be [file]
"""Tweaked TargetSubject for asserting on a cc_binary target.
Adds a `binary_extension` to the meta info that can be used in format strings that then
match both Windows and non-Windows targets.
Offers the same interface as TargetSubject, in fact it is just a TargetSubject, with additional
meta info.
Example use:
cc_binary_target_subject.from_target(env, target).executable().short_path_equals(
"{package}/{name}{binary_extension}"
)
"""
load("@rules_testing//lib:truth.bzl", "subjects")
def _cc_binary_target_subject_from_target(env, target):
helper_target_subject = env.expect.that_target(target)
binary_extension = ""
meta = helper_target_subject.meta.derive(
expr = "cc_binary_target({})".format(target.label),
details = ["cc_binary_target: {}".format(target.label)],
format_str_kwargs = {"binary_extension": binary_extension},
)
return subjects.target(target, meta)
cc_binary_target_subject = struct(
from_target = _cc_binary_target_subject_from_target,
)