blob: c13dcc7585f1593304129cefd138be1036f828eb [file]
"""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(actual.inputs.to_list(), meta = meta.derive("inputs")),
outputs = lambda: subjects.collection(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")),
execution_info = lambda: subjects.dict(actual.execution_info, meta = meta.derive("execution_info")),
)
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,
)