Replaces InjectingObjectCodec with dependencies threaded through (Des|S)erializationContext.
PiperOrigin-RevId: 185547740
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
index ee37679..d5174c5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/GlobDescriptorTest.java
@@ -17,9 +17,9 @@
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodecAdapter;
import com.google.devtools.build.lib.skyframe.serialization.testutils.FsUtils;
import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.Root;
import org.junit.Test;
@@ -32,9 +32,7 @@
@Test
public void testSerialization() throws Exception {
- ObjectCodecTester.newBuilder(
- GlobDescriptor.getCodec(
- new InjectingObjectCodecAdapter<>(Root.CODEC, () -> FsUtils.TEST_FILESYSTEM)))
+ ObjectCodecTester.newBuilder(GlobDescriptor.CODEC)
.addSubjects(
GlobDescriptor.create(
PackageIdentifier.create("@foo", PathFragment.create("//bar")),
@@ -48,6 +46,7 @@
PathFragment.create("anotherSubdir"),
"pattern",
/*excludeDirs=*/ true))
+ .addDependency(FileSystem.class, FsUtils.TEST_FILESYSTEM)
.verificationFunction((orig, deserialized) -> assertThat(deserialized).isSameAs(orig))
.buildAndRunTests();
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageValueTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageValueTest.java
index 3c3652d..c8d9d9e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageValueTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageValueTest.java
@@ -21,12 +21,13 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.packages.Package;
+import com.google.devtools.build.lib.packages.PackageCodecDependencies;
import com.google.devtools.build.lib.packages.PackageCodecDependencies.SimplePackageCodecDependencies;
import com.google.devtools.build.lib.packages.PackageDeserializationException;
import com.google.devtools.build.lib.packages.PackageDeserializerInterface;
import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
-import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodecAdapter;
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.protobuf.CodedInputStream;
@@ -43,13 +44,13 @@
private PackageDeserializerInterface mockDeserializer;
private ObjectCodec<PackageValue> underTest;
+ SimplePackageCodecDependencies codecDeps;
@Before
public void setUp() {
this.mockDeserializer = mock(PackageDeserializerInterface.class);
- this.underTest =
- new InjectingObjectCodecAdapter<>(
- PackageValue.CODEC, new SimplePackageCodecDependencies(null, mockDeserializer));
+ this.underTest = PackageValue.CODEC;
+ this.codecDeps = new SimplePackageCodecDependencies(null, mockDeserializer);
}
@Test
@@ -63,7 +64,10 @@
.thenReturn(mockPackage);
CodedInputStream codedIn = CodedInputStream.newInstance(new byte[] {1, 2, 3, 4});
- PackageValue result = underTest.deserialize(DeserializationContext.create(), codedIn);
+ PackageValue result =
+ underTest.deserialize(
+ new DeserializationContext(ImmutableMap.of(PackageCodecDependencies.class, codecDeps)),
+ codedIn);
assertThat(result.getPackage()).isSameAs(mockPackage);
}
@@ -75,7 +79,8 @@
try {
underTest.deserialize(
- DeserializationContext.create(), CodedInputStream.newInstance(new byte[] {1, 2, 3, 4}));
+ new DeserializationContext(ImmutableMap.of(PackageCodecDependencies.class, codecDeps)),
+ CodedInputStream.newInstance(new byte[] {1, 2, 3, 4}));
fail("Expected exception");
} catch (IllegalStateException e) {
assertThat(e)
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
index 5d24b9e..4928d73 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
@@ -52,7 +52,6 @@
import com.google.devtools.build.lib.events.EventKind;
import com.google.devtools.build.lib.events.StoredEventHandler;
import com.google.devtools.build.lib.skyframe.ActionTemplateExpansionValue.ActionTemplateExpansionKey;
-import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodecAdapter;
import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
import com.google.devtools.build.lib.testutil.TestUtils;
import com.google.devtools.build.lib.vfs.FileStatus;
@@ -118,9 +117,9 @@
@Test
public void testCodec() throws Exception {
- ObjectCodecTester.newBuilder(
- new InjectingObjectCodecAdapter<>(Artifact.CODEC, () -> scratch.getFileSystem()))
+ ObjectCodecTester.newBuilder(Artifact.CODEC)
.addSubjects(outOne, outOneFileOne)
+ .addDependency(FileSystem.class, scratch.getFileSystem())
.buildAndRunTests();
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecsTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecsTest.java
index 3b84c93..dc835c7 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ObjectCodecsTest.java
@@ -26,6 +26,7 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import com.google.common.collect.ImmutableMap;
import com.google.protobuf.ByteString;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
@@ -79,10 +80,10 @@
@Before
public final void setup() {
spyObjectCodec = spy(new IntegerCodec());
- this.underTest = new ObjectCodecs(
- ObjectCodecRegistry.newBuilder()
- .add(KNOWN_CLASSIFIER, spyObjectCodec)
- .build());
+ this.underTest =
+ new ObjectCodecs(
+ ObjectCodecRegistry.newBuilder().add(KNOWN_CLASSIFIER, spyObjectCodec).build(),
+ ImmutableMap.of());
}
@Test
@@ -224,8 +225,10 @@
@Test
public void testSerializeFailsWhenNoCustomCodecAndFallbackDisabled() throws Exception {
- ObjectCodecs underTest = new ObjectCodecs(
- ObjectCodecRegistry.newBuilder().setAllowDefaultCodec(false).build());
+ ObjectCodecs underTest =
+ new ObjectCodecs(
+ ObjectCodecRegistry.newBuilder().setAllowDefaultCodec(false).build(),
+ ImmutableMap.of());
SerializationException.NoCodecException expected =
expectThrows(
SerializationException.NoCodecException.class, () -> underTest.serialize("X", "Y"));
@@ -237,8 +240,10 @@
@Test
public void testDeserializeFailsWhenNoCustomCodecAndFallbackDisabled() throws Exception {
ByteString serialized = ByteString.copyFromUtf8("doesn't matter");
- ObjectCodecs underTest = new ObjectCodecs(
- ObjectCodecRegistry.newBuilder().setAllowDefaultCodec(false).build());
+ ObjectCodecs underTest =
+ new ObjectCodecs(
+ ObjectCodecRegistry.newBuilder().setAllowDefaultCodec(false).build(),
+ ImmutableMap.of());
SerializationException.NoCodecException expected =
expectThrows(
SerializationException.NoCodecException.class,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
index f6532fc..f1bac51 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
+import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.LabelCodec;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
@@ -30,13 +31,15 @@
public PrecomputedValueCodecTest() {
super(
new PrecomputedValueCodec(
- () -> new ObjectCodecs(
- ObjectCodecRegistry.newBuilder()
- .asClassKeyedBuilder()
- // Note no PathFragmentCodec.
- .add(String.class, StringCodecs.asciiOptimized())
- .add(Label.class, LabelCodec.INSTANCE)
- .build())),
+ () ->
+ new ObjectCodecs(
+ ObjectCodecRegistry.newBuilder()
+ .asClassKeyedBuilder()
+ // Note no PathFragmentCodec.
+ .add(String.class, StringCodecs.asciiOptimized())
+ .add(Label.class, LabelCodec.INSTANCE)
+ .build(),
+ ImmutableMap.of())),
new PrecomputedValue(PathFragment.create("java serializable 1")),
new PrecomputedValue(PathFragment.create("java serializable 2")),
new PrecomputedValue("first string"),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
index 30f4e08..f922e43 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
@@ -16,6 +16,7 @@
import static org.junit.Assert.fail;
+import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.cmdline.RepositoryNameCodec;
@@ -47,7 +48,7 @@
@Test
public void testDeserializeBadDataThrowsSerializationException() {
try {
- fromBytes(INVALID_ENCODED_REPOSITORY_NAME);
+ fromBytes(new DeserializationContext(ImmutableMap.of()), INVALID_ENCODED_REPOSITORY_NAME);
fail("Expected exception");
} catch (SerializationException | IOException e) {
// Expected.