diff options
2 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java index dbb913d626..4f471e8838 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java @@ -119,7 +119,9 @@ public final class ConfigFeatureFlagConfiguration extends BuildConfiguration.Fra for (Map.Entry<Label, String> flag : flagValues.entrySet()) { hasher.putUnencodedChars(flag.getKey().toString()); + hasher.putByte((byte) 0); hasher.putUnencodedChars(flag.getValue()); + hasher.putByte((byte) 0); } return hasher.hash().toString(); } diff --git a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfigurationTest.java index a0de77dfdf..5034db2d25 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfigurationTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfigurationTest.java @@ -217,6 +217,20 @@ public final class ConfigFeatureFlagConfigurationTest { } @Test + public void getOutputDirectoryName_differentiatesLabelAndValue() throws Exception { + Map<Label, String> someFlags = + ImmutableMap.of( + Label.parseAbsoluteUnchecked("//a:a"), "firestarter", + Label.parseAbsoluteUnchecked("//b:b"), "second"); + Map<Label, String> otherFlags = + ImmutableMap.of( + Label.parseAbsoluteUnchecked("//a:afire"), "starter", + Label.parseAbsoluteUnchecked("//b:b"), "second"); + assertThat(getConfigurationWithFlags(otherFlags).getOutputDirectoryName()) + .isNotEqualTo(getConfigurationWithFlags(someFlags).getOutputDirectoryName()); + } + + @Test public void getOutputDirectoryName_returnsDifferentValueForSubsetOfFlagValuePairs() throws Exception { Map<Label, String> someFlags = ImmutableMap.of(Label.parseAbsoluteUnchecked("//a:a"), "first"); |