blob: 5a0313de090ab0f49776a35e8edfb834570a8458 [file] [edit]
"""Subject for asserting on Link Actions."""
load("@rules_testing//lib:truth.bzl", "subjects")
load("//tests/cc/testutil:cc_binary_target_subject.bzl", "cc_binary_target_subject")
def _link_action_subject_new(actual, meta):
return struct(
actual = actual,
meta = meta,
inputs = lambda: subjects.collection([f.short_path for f in actual.inputs.to_list()], meta = meta.derive("inputs")),
outputs = lambda: subjects.collection([f.short_path for f in actual.outputs.to_list()], meta = meta.derive("outputs")),
argv = lambda: subjects.collection(actual.argv, meta = meta.derive("argv")),
env = lambda: subjects.dict(actual.env, meta = meta.derive("env")),
)
def _link_action_subject_from_target(env, target):
action_subject = cc_binary_target_subject.from_target(env, target).action_generating(
"{package}/{name}{binary_extension}",
)
return _link_action_subject_new(action_subject.actual, action_subject.meta)
link_action_subject = struct(
new = _link_action_subject_new,
from_target = _link_action_subject_from_target,
)