aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skyframe
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-05-21 16:12:57 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-21 16:14:22 -0700
commita08bfba65f6f7f5c382a5b90e55f7c468dde3275 (patch)
treeece115c3e357ae43cfdf43d90744d1b7aec2a2c5 /src/test/java/com/google/devtools/build/lib/skyframe
parent5e3587c0b088c402a1b32d4441ba144b072c8221 (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')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/SerializationContextTest.java66
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()