aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
diff options
context:
space:
mode:
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.java46
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();