diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/BUILD | 1 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTest.java | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD index e487d55123..205bf8f020 100644 --- a/src/test/java/com/google/devtools/build/lib/BUILD +++ b/src/test/java/com/google/devtools/build/lib/BUILD @@ -224,6 +224,7 @@ java_test( "//src/main/java/com/google/devtools/build/lib/collect/nestedset:fingerprint_cache", "//src/main/java/com/google/devtools/build/lib/skyframe/serialization", "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils", + "//third_party/protobuf:protobuf_java", ], ) 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 978d7a0bb5..74eea2176d 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,8 +15,12 @@ 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; @@ -66,6 +70,27 @@ 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()); |