diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java index 541ca023a2..d9a2422853 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java @@ -34,6 +34,7 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.Str import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.StructureBuilder; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.VariableValue; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.VariableValueBuilder; +import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester; import com.google.devtools.build.lib.testutil.TestUtils; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain; @@ -102,6 +103,51 @@ public class CcToolchainFeaturesTest { } @Test + public void testCodec() throws Exception { + FeatureConfiguration emptyConfiguration = + buildFeatures("").getFeatureConfiguration(ImmutableSet.of()); + FeatureConfiguration emptyFeatures = + buildFeatures("feature {name: 'a'}", "feature {name: 'b'}") + .getFeatureConfiguration(ImmutableSet.of("a", "b")); + FeatureConfiguration featuresWithFlags = + buildFeatures( + "feature {", + " name: 'a'", + " flag_set {", + " action: 'action-a'", + " flag_group { flag: 'flag-a'}", + " }", + " flag_set {", + " action: 'action-b'", + " flag_group { flag: 'flag-b'}", + " }", + "}", + "feature {", + " name: 'b'", + " flag_set {", + " action: 'action-c'", + " flag_group { flag: 'flag-c'}", + " }", + "}") + .getFeatureConfiguration(ImmutableSet.of("a", "b")); + FeatureConfiguration featureWithEnvSet = + buildFeatures( + "feature {", + " name: 'a'", + " env_set {", + " action: 'action-a'", + " env_entry { key: 'foo', value: 'bar'}", + " env_entry { key: 'baz', value: 'zee'}", + " }", + "}") + .getFeatureConfiguration(ImmutableSet.of("a")); + + ObjectCodecTester.newBuilder(FeatureConfiguration.CODEC) + .addSubjects(emptyConfiguration, emptyFeatures, featuresWithFlags, featureWithEnvSet) + .buildAndRunTests(); + } + + @Test public void testUnconditionalFeature() throws Exception { assertThat(buildFeatures("").getFeatureConfiguration(ImmutableSet.of("a")).isEnabled("a")) .isFalse(); |