diff options
author | 2018-04-06 12:03:07 -0700 | |
---|---|---|
committer | 2018-04-06 12:04:24 -0700 | |
commit | e4c64ac6fe63d78da3a8cafe1df72c81df23fcb0 (patch) | |
tree | f56703659b80cdc44b64712eaf2705a403d4ccdd /src/test/java/com/google/devtools/build/lib/skyframe | |
parent | 4282c19c58a1b20deca1ce373005602ff0bc4684 (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.java | 31 |
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]"); + } + } } |