aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skyframe
diff options
context:
space:
mode:
authorGravatar shahan <shahan@google.com>2018-04-06 12:03:07 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-06 12:04:24 -0700
commite4c64ac6fe63d78da3a8cafe1df72c81df23fcb0 (patch)
treef56703659b80cdc44b64712eaf2705a403d4ccdd /src/test/java/com/google/devtools/build/lib/skyframe
parent4282c19c58a1b20deca1ce373005602ff0bc4684 (diff)
DynamicCodec emits a trail of type names when it encounters NoSuchCodecException.
This will make it easier to trace down missing codecs. PiperOrigin-RevId: 191920743
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/DynamicCodecTest.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodecTest.java
index 7d48929ee9..1d73f6c386 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodecTest.java
@@ -15,8 +15,11 @@
package com.google.devtools.build.lib.skyframe.serialization;
import static com.google.common.truth.Truth.assertThat;
+import static org.junit.Assert.fail;
+import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
+import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Objects;
import org.junit.Test;
@@ -371,4 +374,32 @@ public final class DynamicCodecTest {
.setRepetitions(100000)
.runTests();
}
+
+ private static class NoCodecExample2 {
+ @SuppressWarnings("unused")
+ private final BufferedInputStream noCodec = new BufferedInputStream(null);
+ }
+
+ private static class NoCodecExample1 {
+ @SuppressWarnings("unused")
+ private final NoCodecExample2 noCodec = new NoCodecExample2();
+ }
+
+ @Test
+ public void testNoCodecExample() throws Exception {
+ ObjectCodecs codecs = new ObjectCodecs(AutoRegistry.get(), ImmutableMap.of());
+ try {
+ codecs.serializeMemoized(new NoCodecExample1());
+ fail();
+ } catch (SerializationException.NoCodecException expected) {
+ assertThat(expected)
+ .hasMessageThat()
+ .contains(
+ "java.io.BufferedInputStream ["
+ + "com.google.devtools.build.lib.skyframe.serialization."
+ + "DynamicCodecTest$NoCodecExample2, "
+ + "com.google.devtools.build.lib.skyframe.serialization."
+ + "DynamicCodecTest$NoCodecExample1]");
+ }
+ }
}