Replaces InjectingObjectCodec with dependencies threaded through (Des|S)erializationContext.
PiperOrigin-RevId: 185547740
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD
index cf66e2f..f1cc531 100644
--- a/src/test/java/com/google/devtools/build/lib/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/BUILD
@@ -856,6 +856,7 @@
"//src/main/java/com/google/devtools/build/lib:packages",
"//src/main/java/com/google/devtools/build/lib:skylarkinterface",
"//src/main/java/com/google/devtools/build/lib:util",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe",
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
index f26d00e..a0261e9 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
@@ -25,10 +25,10 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.rules.cpp.CppFileTypes;
import com.google.devtools.build.lib.rules.java.JavaSemantics;
-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.MoreAsserts;
import com.google.devtools.build.lib.testutil.Scratch;
+import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.Root;
@@ -336,8 +336,7 @@
@Test
public void testCodec() throws Exception {
- ObjectCodecTester.newBuilder(
- new InjectingObjectCodecAdapter<>(Artifact.CODEC, () -> scratch.getFileSystem()))
+ ObjectCodecTester.newBuilder(Artifact.CODEC)
.addSubjects(
new Artifact(PathFragment.create("src/a"), rootDir),
new Artifact(
@@ -347,6 +346,7 @@
scratch.getFileSystem().getPath("/"), scratch.dir("/src")),
PathFragment.create("src/c"),
new LabelArtifactOwner(Label.parseAbsoluteUnchecked("//foo:bar"))))
+ .addDependency(FileSystem.class, scratch.getFileSystem())
.buildAndRunTests();
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesTest.java
index c686a1f..06ffcd0 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesTest.java
@@ -15,7 +15,6 @@
import static com.google.common.truth.Truth.assertThat;
-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.testutil.FoundationTestCase;
@@ -54,9 +53,7 @@
@Test
public void testCodec() throws Exception {
- ObjectCodecTester.newBuilder(
- new InjectingObjectCodecAdapter<>(
- BlazeDirectories.CODEC, FsUtils.TEST_FILESYSTEM_PROVIDER))
+ ObjectCodecTester.newBuilder(BlazeDirectories.CODEC)
.addSubjects(
new BlazeDirectories(
new ServerDirectories(
@@ -77,6 +74,7 @@
FsUtils.TEST_FILESYSTEM.getPath("/output_base")),
FsUtils.TEST_FILESYSTEM.getPath("/workspace"),
"Bazel"))
+ .addDependency(FileSystem.class, FsUtils.TEST_FILESYSTEM)
.buildAndRunTests();
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
index d3a1d4d..26b1d1e 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
@@ -29,8 +29,8 @@
import com.google.devtools.build.lib.rules.cpp.CppConfiguration;
import com.google.devtools.build.lib.rules.java.JavaConfiguration;
import com.google.devtools.build.lib.rules.objc.J2ObjcConfiguration;
-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.vfs.FileSystem;
import com.google.devtools.common.options.Options;
import java.util.Map;
import java.util.regex.Pattern;
@@ -430,9 +430,7 @@
@Test
public void testCodec() throws Exception {
- ObjectCodecTester.newBuilder(
- new InjectingObjectCodecAdapter<>(
- BuildConfiguration.CODEC, () -> getScratch().getFileSystem()))
+ ObjectCodecTester.newBuilder(BuildConfiguration.CODEC)
.addSubjects(
create(),
create("--cpu=piii"),
@@ -453,6 +451,7 @@
"qspace=a\\ quoted\\ space",
"--define",
"#a=pounda"))
+ .addDependency(FileSystem.class, getScratch().getFileSystem())
.verificationFunction(BuildConfigurationTest::verifyDeserialized)
.buildAndRunTests();
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
index 56d8039..339f060 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
@@ -16,6 +16,9 @@
import static com.google.common.truth.Truth.assertThat;
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationContext;
import com.google.devtools.build.lib.skyframe.serialization.testutils.TestUtils;
import com.google.devtools.build.lib.syntax.SkylarkSemantics;
import com.google.devtools.common.options.Options;
@@ -84,7 +87,10 @@
for (int i = 0; i < NUM_RANDOM_TRIALS; i++) {
SkylarkSemantics semantics = buildRandomSemantics(new Random(i));
SkylarkSemantics deserialized =
- TestUtils.fromBytes(codec, TestUtils.toBytes(codec, semantics));
+ TestUtils.fromBytes(
+ new DeserializationContext(ImmutableMap.of()),
+ codec,
+ TestUtils.toBytes(new SerializationContext(ImmutableMap.of()), codec, semantics));
assertThat(deserialized).isEqualTo(semantics);
}
}
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.
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/RootTest.java b/src/test/java/com/google/devtools/build/lib/vfs/RootTest.java
index 9c67e72..e9605b3 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/RootTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/RootTest.java
@@ -18,8 +18,6 @@
import com.google.common.collect.Lists;
import com.google.common.testing.EqualsTester;
import com.google.devtools.build.lib.clock.BlazeClock;
-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.testutils.ObjectCodecTester;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
@@ -99,9 +97,9 @@
@Test
public void testSerialization() throws Exception {
- ObjectCodec<Root> codec = new InjectingObjectCodecAdapter<>(Root.CODEC, () -> fs);
- ObjectCodecTester.newBuilder(codec)
+ ObjectCodecTester.newBuilder(Root.CODEC)
.addSubjects(Root.absoluteRoot(fs), Root.fromPath(fs.getPath("/foo")))
+ .addDependency(FileSystem.class, fs)
.skipBadDataTest()
.buildAndRunTests();
}