aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-03-26 09:07:11 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-26 09:10:14 -0700
commit8688b68d4331449f97b04a868c0d61c62eff71f2 (patch)
tree2ead7527a6bb736e481034647cd8cd6f6047a4e3 /src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
parent656a0bab1e025ff3c27d595284a4bf1c5a8d8028 (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.java53
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,