diff options
author | Mark Schaller <mschaller@google.com> | 2016-01-13 18:41:24 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-01-14 09:53:17 +0000 |
commit | ee624453d9f5dd908d721abb4663246c70bf4509 (patch) | |
tree | ba90c489d6fb079438a8015f786fc3c9f1cad0c3 /src/test/java/com/google | |
parent | 3d9441bb4fc224c6551f5063d2a5d2c84a76e3e8 (diff) |
For native rule classes, (de)serialize only explicit attrs
Native rule classes can provide default values for rules after they're
deserialized, so there isn't a need to serialize those default values.
This doesn't apply yet to rules with Skylark-defined rule classes, due
to the non-serializablity of Skylark rule classes.
--
MOS_MIGRATED_REVID=112066930
Diffstat (limited to 'src/test/java/com/google')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java | 11 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java | 11 |
2 files changed, 15 insertions, 7 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java index 4246cddbb9..25f1bf0369 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java @@ -51,6 +51,7 @@ import com.google.devtools.build.lib.packages.Attribute.ValidityPredicate; import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy.MissingFragmentPolicy; import com.google.devtools.build.lib.packages.Package.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.packages.RuleFactory.BuildLangTypedAttributeValuesMap; import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.Path; @@ -685,8 +686,14 @@ public class RuleClassTest extends PackageLoadingTestCase { } catch (LabelSyntaxException e) { throw new IllegalArgumentException("Rule has illegal label"); } - return ruleClass.createRuleWithLabel(pkgBuilder, ruleLabel, attributeValues, - reporter, null, location); + return ruleClass.createRule( + pkgBuilder, + ruleLabel, + new BuildLangTypedAttributeValuesMap(attributeValues), + reporter, + /*ast=*/ null, + location, + new AttributeContainer(ruleClass)); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java index 9c213b29df..50a8b4b464 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/RuleFactoryTest.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.events.Reporter; +import com.google.devtools.build.lib.packages.RuleFactory.BuildLangTypedAttributeValuesMap; import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; @@ -63,7 +64,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { RuleFactory.createAndAddRule( pkgBuilder, provider.getRuleClassMap().get("cc_library"), - attributeValues, + new BuildLangTypedAttributeValuesMap(attributeValues), new Reporter(), /*ast=*/ null, LOCATION_42, @@ -122,7 +123,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { RuleFactory.createAndAddRule( pkgBuilder, provider.getRuleClassMap().get("bind"), - attributeValues, + new BuildLangTypedAttributeValuesMap(attributeValues), new Reporter(), /*ast=*/ null, Location.fromFileAndOffsets(myPkgPath.asFragment(), 42, 42), @@ -146,7 +147,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { RuleFactory.createAndAddRule( pkgBuilder, provider.getRuleClassMap().get("bind"), - attributeValues, + new BuildLangTypedAttributeValuesMap(attributeValues), new Reporter(), /*ast=*/ null, LOCATION_42, @@ -173,7 +174,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { RuleFactory.createAndAddRule( pkgBuilder, provider.getRuleClassMap().get("cc_library"), - attributeValues, + new BuildLangTypedAttributeValuesMap(attributeValues), new Reporter(), /*ast=*/ null, Location.fromFileAndOffsets(myPkgPath.asFragment(), 42, 42), @@ -211,7 +212,7 @@ public class RuleFactoryTest extends PackageLoadingTestCase { RuleFactory.createAndAddRule( pkgBuilder, provider.getRuleClassMap().get("genrule"), - attributeValues, + new BuildLangTypedAttributeValuesMap(attributeValues), new Reporter(), /*ast=*/ null, Location.fromFileAndOffsets(myPkgPath.asFragment(), 42, 42), |