| """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, |
| ) |