diff options
author | John Cater <jcater@google.com> | 2016-11-30 19:01:23 +0000 |
---|---|---|
committer | Irina Iancu <elenairina@google.com> | 2016-12-01 10:15:49 +0000 |
commit | b89f30e129a4ef6eb1e81fb865117e4845892d74 (patch) | |
tree | 9468c2b64d7ce310717326c1ad09ae1fedd1f846 /tools/build_rules | |
parent | 43ad03290228adc8187853f83be073119c6f9aaa (diff) |
Add support for rules_test on rules in a different repository or in the
root package.
--
Change-Id: Ibbc4119ec65c27ad1f85a74450815195d18f5128
Reviewed-on: https://cr.bazel.build/7571
MOS_MIGRATED_REVID=140625048
Diffstat (limited to 'tools/build_rules')
-rw-r--r-- | tools/build_rules/test_rules.bzl | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/tools/build_rules/test_rules.bzl b/tools/build_rules/test_rules.bzl index a9b9d2d722..02fcf32ee4 100644 --- a/tools/build_rules/test_rules.bzl +++ b/tools/build_rules/test_rules.bzl @@ -184,9 +184,26 @@ def _rule_test_impl(ctx): rule_name = str(rule_.label) exe = ctx.outputs.executable if ctx.attr.generates: - prefix = rule_.label.package + "/" + # Generate the proper prefix to remove from generated files. + prefix_parts = [] + + if rule_.label.workspace_root: + # Create a prefix that is correctly relative to the output of this rule. + prefix_parts = ["..", strip_prefix("external/", rule_.label.workspace_root)] + + if rule_.label.package: + prefix_parts.append(rule_.label.package) + + prefix = "/".join(prefix_parts) + + if prefix: + # If the prefix isn't empty, it needs a trailing slash. + prefix = prefix + "/" + # TODO(bazel-team): Use set() instead of sorted() once # set comparison is implemented. + # TODO(bazel-team): Use a better way to determine if two paths refer to + # the same file. generates = sorted(ctx.attr.generates) generated = sorted([strip_prefix(prefix, f.short_path) for f in rule_.files]) |