diff options
author | janakr <janakr@google.com> | 2018-05-21 16:12:57 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-21 16:14:22 -0700 |
commit | a08bfba65f6f7f5c382a5b90e55f7c468dde3275 (patch) | |
tree | ece115c3e357ae43cfdf43d90744d1b7aec2a2c5 /src/test/java/com/google/devtools/build/lib/skyframe/serialization/SerializationContextTest.java | |
parent | 5e3587c0b088c402a1b32d4441ba144b072c8221 (diff) |
Remove string prefix optimization. With new UnsafeJdk9StringCodec, it's no longer worth it.
PiperOrigin-RevId: 197477783
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skyframe/serialization/SerializationContextTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skyframe/serialization/SerializationContextTest.java | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/SerializationContextTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/SerializationContextTest.java index 776cf2da6c..f151c5aa54 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/SerializationContextTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/SerializationContextTest.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.skyframe.serialization; import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.Truth.assertWithMessage; import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.when; @@ -24,11 +23,9 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec.MemoizationStrategy; -import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs; import com.google.devtools.build.lib.skyframe.serialization.testutils.TestUtils; import com.google.protobuf.CodedInputStream; import com.google.protobuf.CodedOutputStream; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.concurrent.atomic.AtomicBoolean; @@ -131,69 +128,6 @@ public class SerializationContextTest { } @Test - public void memoizingStringPrefixes_EndtoEnd() throws Exception { - ObjectCodec<String> codec = StringCodecs.simple(); - Memoizer.Serializer serializer = new Memoizer.Serializer(); - SerializationContext serializationContext = Mockito.mock(SerializationContext.class); - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - CodedOutputStream codedOutputStream = CodedOutputStream.newInstance(byteArrayOutputStream); - - // Serialize all the things. - serializer.serialize(serializationContext, "string", codec, codedOutputStream); - serializer.serialize(serializationContext, "string2", codec, codedOutputStream); - serializer.serialize(serializationContext, "string2", codec, codedOutputStream); - serializer.serialize(serializationContext, "strip", codec, codedOutputStream); - serializer.serialize(serializationContext, "banana", codec, codedOutputStream); - serializer.serialize(serializationContext, "", codec, codedOutputStream); - serializer.serialize(serializationContext, "peach", codec, codedOutputStream); - - // SerializationContext not used for simple string serialization. - Mockito.verifyZeroInteractions(serializationContext); - - // Flush outputs and assert not too much data was written. - codedOutputStream.flush(); - byteArrayOutputStream.flush(); - byte[] bytes = byteArrayOutputStream.toByteArray(); - int stringOverhead = 1; - int prefixOverhead = 1; - // Every string but the first has prefixOverhead, every string has stringOverhead. - assertThat(bytes.length) - .isEqualTo( - "string".length() - + "2".length() - + "p".length() - + "banana".length() - + "peach".length() - + 7 * stringOverhead - + 6 * prefixOverhead); - - // Prepare inputs. - CodedInputStream codedInputStream = CodedInputStream.newInstance(bytes); - Memoizer.Deserializer deserializer = new Memoizer.Deserializer(); - DeserializationContext deserializationContext = Mockito.mock(DeserializationContext.class); - - // Deserialize and assert fidelity. - assertThat(deserializer.deserialize(deserializationContext, codec, codedInputStream)) - .isEqualTo("string"); - String returnedString = - deserializer.deserialize(deserializationContext, codec, codedInputStream); - assertThat(returnedString).isEqualTo("string2"); - String newReturnedString = - deserializer.deserialize(deserializationContext, codec, codedInputStream); - assertThat(newReturnedString).isEqualTo("string2"); - assertWithMessage("Same string twice in a row should be the same object") - .that(newReturnedString) - .isSameAs(returnedString); - assertThat(deserializer.deserialize(deserializationContext, codec, codedInputStream)) - .isEqualTo("strip"); - assertThat(deserializer.deserialize(deserializationContext, codec, codedInputStream)) - .isEqualTo("banana"); - assertThat(deserializer.deserialize(deserializationContext, codec, codedInputStream)).isEmpty(); - assertThat(deserializer.deserialize(deserializationContext, codec, codedInputStream)) - .isEqualTo("peach"); - } - - @Test public void startMemoizingIsIdempotent() throws IOException, SerializationException { ObjectCodecRegistry registry = ObjectCodecRegistry.newBuilder() |