diff options
author | 2018-04-03 15:25:16 -0700 | |
---|---|---|
committer | 2018-04-03 15:27:03 -0700 | |
commit | 7e8110b8dedfef1562e7337ad67b63525c9ae8b1 (patch) | |
tree | bf0b2b07837c69045b05ac3b95e20ec42fa95c54 /src/test/java/com/google/devtools/build/lib/collect | |
parent | e3824d43223e63c147c39416b011bc84ed6bbdee (diff) |
Disable nested set sharing across multiple nested set deserialization sessions. This is incorrect in the presence of memoization: a single element may be serialized as just a pair of integers (type + memoization index). Lots of different nested sets may contain elements that are serialized this way, so they will have the same digests. We could consider doing a parallel hash computation, but for now just disable.
This is not a full rollback of https://github.com/bazelbuild/bazel/commit/39cef6d6a4a9e3ae80b11a9ccc0f35325852777c since there was a refactoring in it that it doesn't seem worth it to roll back.
PiperOrigin-RevId: 191509089
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/collect')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java b/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java index 74eea2176d..978d7a0bb5 100644 --- a/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java +++ b/src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java @@ -15,12 +15,8 @@ package com.google.devtools.build.lib.collect.nestedset; import static com.google.common.truth.Truth.assertThat; -import com.google.common.collect.ImmutableMap; -import com.google.devtools.build.lib.skyframe.serialization.AutoRegistry; -import com.google.devtools.build.lib.skyframe.serialization.ObjectCodecs; import com.google.devtools.build.lib.skyframe.serialization.SerializationConstants; import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester; -import com.google.protobuf.ByteString; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -70,27 +66,6 @@ public class NestedSetCodecTest { .runTests(); } - @SuppressWarnings("unchecked") - @Test - public void testDeserializedNestedSetsShareChildren() throws Exception { - ObjectCodecs objectCodecs = - new ObjectCodecs( - AutoRegistry.get().getBuilder().setAllowDefaultCodec(true).build(), ImmutableMap.of()); - NestedSet<String> originalChild = NestedSetBuilder.create(Order.STABLE_ORDER, "a", "b", "c"); - NestedSet<String> originalA = - new NestedSetBuilder<String>(Order.STABLE_ORDER).addTransitive(originalChild).build(); - NestedSet<String> originalB = - new NestedSetBuilder<String>(Order.STABLE_ORDER).addTransitive(originalChild).build(); - - ByteString serializedA = objectCodecs.serialize(originalA); - ByteString serializedB = objectCodecs.serialize(originalB); - - NestedSet<String> deserializedA = (NestedSet<String>) objectCodecs.deserialize(serializedA); - NestedSet<String> deserializedB = (NestedSet<String>) objectCodecs.deserialize(serializedB); - - assertThat(deserializedA.rawChildren()).isSameAs(deserializedB.rawChildren()); - } - private static void verifyDeserialization( NestedSet<String> subject, NestedSet<String> deserialized) { assertThat(subject.getOrder()).isEqualTo(deserialized.getOrder()); |