diff options
author | janakr <janakr@google.com> | 2018-03-26 09:07:11 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-26 09:10:14 -0700 |
commit | 8688b68d4331449f97b04a868c0d61c62eff71f2 (patch) | |
tree | 2ead7527a6bb736e481034647cd8cd6f6047a4e3 /src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java | |
parent | 656a0bab1e025ff3c27d595284a4bf1c5a8d8028 (diff) |
Make a bunch more stuff serializable, especially anonymous classes and lambdas. Give a bit more information in JavaSerializableCodec when serialization fails on an anonymous class or lambda.
PiperOrigin-RevId: 190472245
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java | 53 |
1 files changed, 28 insertions, 25 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java index fb01a4a9c7..c45ec3c66d 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java @@ -152,20 +152,7 @@ public class SkylarkRuleClassFunctions { attr("timeout", STRING) .taggable() .nonconfigurable("used in loading phase rule validation logic") - .value( - new Attribute.ComputedDefault() { - @Override - public Object getDefault(AttributeMap rule) { - TestSize size = TestSize.getTestSize(rule.get("size", Type.STRING)); - if (size != null) { - String timeout = size.getDefaultTimeout().toString(); - if (timeout != null) { - return timeout; - } - } - return "illegal"; - } - })) + .value(timeoutAttribute)) .add( attr("flaky", BOOLEAN) .value(false) @@ -186,14 +173,16 @@ public class SkylarkRuleClassFunctions { .value( ImmutableList.of( labelCache.getUnchecked(toolsRepository + "//tools/test:runtime")))) - .add(attr("$test_setup_script", LABEL) - .cfg(HostTransition.INSTANCE) - .singleArtifact() - .value(labelCache.getUnchecked(toolsRepository + "//tools/test:test_setup"))) - .add(attr("$collect_coverage_script", LABEL) - .cfg(HostTransition.INSTANCE) - .singleArtifact() - .value(labelCache.getUnchecked(toolsRepository + "//tools/test:collect_coverage"))) + .add( + attr("$test_setup_script", LABEL) + .cfg(HostTransition.INSTANCE) + .singleArtifact() + .value(labelCache.getUnchecked(toolsRepository + "//tools/test:test_setup"))) + .add( + attr("$collect_coverage_script", LABEL) + .cfg(HostTransition.INSTANCE) + .singleArtifact() + .value(labelCache.getUnchecked(toolsRepository + "//tools/test:collect_coverage"))) // Input files for test actions collecting code coverage .add( attr("$coverage_support", LABEL) @@ -205,12 +194,26 @@ public class SkylarkRuleClassFunctions { .cfg(HostTransition.INSTANCE) .value(labelCache.getUnchecked("//tools/defaults:coverage_report_generator")) .singleArtifact()) - .add(attr(":run_under", LABEL) - .cfg(lipoDataTransition) - .value(RUN_UNDER)) + .add(attr(":run_under", LABEL).cfg(lipoDataTransition).value(RUN_UNDER)) .build(); } + @AutoCodec @AutoCodec.VisibleForSerialization + static final Attribute.ComputedDefault timeoutAttribute = + new Attribute.ComputedDefault() { + @Override + public Object getDefault(AttributeMap rule) { + TestSize size = TestSize.getTestSize(rule.get("size", Type.STRING)); + if (size != null) { + String timeout = size.getDefaultTimeout().toString(); + if (timeout != null) { + return timeout; + } + } + return "illegal"; + } + }; + @SkylarkSignature( name = "struct", returnType = Info.class, |