Deletes CODEC fields now that they are no longer needed.

PiperOrigin-RevId: 187397314
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 13cdbc7..26efc19 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,7 +25,7 @@
 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.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.testutil.MoreAsserts;
 import com.google.devtools.build.lib.testutil.Scratch;
 import com.google.devtools.build.lib.vfs.FileSystem;
@@ -336,8 +336,7 @@
 
   @Test
   public void testCodec() throws Exception {
-    ObjectCodecTester.newBuilder(Artifact.CODEC)
-        .addSubjects(
+    new SerializationTester(
             new Artifact(PathFragment.create("src/a"), rootDir),
             new Artifact(
                 PathFragment.create("src/b"), ArtifactRoot.asSourceRoot(Root.fromPath(execDir))),
@@ -347,7 +346,7 @@
                 PathFragment.create("src/c"),
                 new LabelArtifactOwner(Label.parseAbsoluteUnchecked("//foo:bar"))))
         .addDependency(FileSystem.class, scratch.getFileSystem())
-        .buildAndRunTests();
+        .runTests();
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/LabelArtifactOwner.java b/src/test/java/com/google/devtools/build/lib/actions/util/LabelArtifactOwner.java
index 0d24177..5fc60fd 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/LabelArtifactOwner.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/LabelArtifactOwner.java
@@ -16,7 +16,6 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.devtools.build.lib.actions.ArtifactOwner;
 import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import java.util.Objects;
 
@@ -24,9 +23,6 @@
 @VisibleForTesting
 @AutoCodec
 public class LabelArtifactOwner implements ArtifactOwner {
-
-  public static final ObjectCodec<LabelArtifactOwner> CODEC = new LabelArtifactOwner_AutoCodec();
-
   private final Label label;
 
   @VisibleForTesting
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 930a2a5..36024e5 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
@@ -16,7 +16,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 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.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.testutil.FoundationTestCase;
 import com.google.devtools.build.lib.vfs.FileSystem;
 import com.google.devtools.build.lib.vfs.Path;
@@ -57,8 +57,7 @@
 
   @Test
   public void testCodec() throws Exception {
-    ObjectCodecTester.newBuilder(BlazeDirectories.CODEC)
-        .addSubjects(
+    new SerializationTester(
             new BlazeDirectories(
                 new ServerDirectories(
                     FsUtils.TEST_FILESYSTEM.getPath("/install_base"),
@@ -82,6 +81,6 @@
                 FsUtils.TEST_FILESYSTEM.getPath("/workspace"),
                 "Bazel"))
         .addDependency(FileSystem.class, FsUtils.TEST_FILESYSTEM)
-        .buildAndRunTests();
+        .runTests();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
index c5bfa97..bf6f902 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
@@ -29,7 +29,6 @@
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.packages.Attribute;
 import com.google.devtools.build.lib.packages.BuildType;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
 import com.google.devtools.build.lib.util.FileTypeSet;
@@ -44,9 +43,6 @@
   /** A custom {@link FragmentOptions} with the option to be split. */
   @AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS)
   public static class TestOptions extends FragmentOptions { // public for options loader
-    public static final ObjectCodec<TestOptions> CODEC =
-        new LateBoundSplitUtil_TestOptions_AutoCodec();
-
     @Option(
       name = "foo",
       documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
@@ -71,8 +67,6 @@
   /** The {@link BuildConfiguration.Fragment} that contains the options. */
   @AutoCodec
   static class TestFragment extends BuildConfiguration.Fragment {
-    public static final ObjectCodec<TestFragment> CODEC =
-        new LateBoundSplitUtil_TestFragment_AutoCodec();
   }
 
   /**
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java b/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java
index ac9629c..dbede30 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/TestConfigFragments.java
@@ -23,7 +23,6 @@
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
 import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition;
 import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
 
@@ -86,9 +85,6 @@
 
   @AutoCodec
   static class Hook1Fragment extends BuildConfiguration.Fragment {
-    public static final ObjectCodec<Hook1Fragment> CODEC =
-        new TestConfigFragments_Hook1Fragment_AutoCodec();
-
     @Override
     public PatchTransition topLevelConfigurationHook(Target toTarget) {
       return new HostCpuTransition("CONFIG HOOK 1");
@@ -106,9 +102,6 @@
    */
   @AutoCodec
   static class Hook2Fragment extends BuildConfiguration.Fragment {
-    public static final ObjectCodec<Hook2Fragment> CODEC =
-        new TestConfigFragments_Hook2Fragment_AutoCodec();
-
     @Override
     public PatchTransition topLevelConfigurationHook(Target toTarget) {
       return new HostCpuTransition("CONFIG HOOK 2");
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 26b1d1e..3df4923 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,7 +29,7 @@
 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.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.vfs.FileSystem;
 import com.google.devtools.common.options.Options;
 import java.util.Map;
@@ -430,8 +430,7 @@
 
   @Test
   public void testCodec() throws Exception {
-    ObjectCodecTester.newBuilder(BuildConfiguration.CODEC)
-        .addSubjects(
+    new SerializationTester(
             create(),
             create("--cpu=piii"),
             create("--javacopt=foo"),
@@ -452,8 +451,8 @@
                 "--define",
                 "#a=pounda"))
         .addDependency(FileSystem.class, getScratch().getFileSystem())
-        .verificationFunction(BuildConfigurationTest::verifyDeserialized)
-        .buildAndRunTests();
+        .setVerificationFunction(BuildConfigurationTest::verifyDeserialized)
+        .runTests();
   }
 
   /**
diff --git a/src/test/java/com/google/devtools/build/lib/exec/MiddlemanActionTest.java b/src/test/java/com/google/devtools/build/lib/exec/MiddlemanActionTest.java
index 42a9a1f..5c176fe 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/MiddlemanActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/MiddlemanActionTest.java
@@ -26,7 +26,7 @@
 import com.google.devtools.build.lib.analysis.util.AnalysisTestUtil;
 import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
 import com.google.devtools.build.lib.cmdline.RepositoryName;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.testutil.Suite;
 import com.google.devtools.build.lib.testutil.TestSpec;
 import com.google.devtools.build.lib.vfs.FileSystem;
@@ -140,16 +140,16 @@
 
   @Test
   public void testCodec() throws Exception {
-    ObjectCodecTester.newBuilder(MiddlemanAction.CODEC)
-        .addSubjects((MiddlemanAction) getGeneratingAction(middle))
+    new SerializationTester(getGeneratingAction(middle))
         .addDependency(FileSystem.class, scratch.getFileSystem())
-        .verificationFunction(
-            (first, second) -> {
-              assertThat(first.getActionType()).isEqualTo(second.getActionType());
-              assertThat(first.getInputs()).isEqualTo(second.getInputs());
-              assertThat(first.getOutputs()).isEqualTo(second.getOutputs());
-              assertThat(first.getOwner()).isEqualTo(second.getOwner());
-            })
-        .buildAndRunTests();
+        .setVerificationFunction(MiddlemanActionTest::verifyEquivalent)
+        .runTests();
+  }
+
+  private static void verifyEquivalent(MiddlemanAction first, MiddlemanAction second) {
+    assertThat(first.getActionType()).isEqualTo(second.getActionType());
+    assertThat(first.getInputs()).isEqualTo(second.getInputs());
+    assertThat(first.getOutputs()).isEqualTo(second.getOutputs());
+    assertThat(first.getOwner()).isEqualTo(second.getOwner());
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
index 1de930e..e79ae57 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
@@ -17,20 +17,22 @@
 import com.google.common.collect.ImmutableList;
 import com.google.devtools.build.lib.analysis.config.BuildOptions;
 import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.common.options.OptionsParsingException;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
 /** Tests for serialization of {@link AppleConfiguration}. */
 @RunWith(JUnit4.class)
-public class AppleConfigurationSerializationTest
-    extends AbstractObjectCodecTest<AppleConfiguration> {
-  public AppleConfigurationSerializationTest() {
-    super(AppleConfiguration.CODEC, subject());
+public class AppleConfigurationSerializationTest {
+
+  @Test
+  public void testCodec() throws Exception {
+    new SerializationTester(getSubjects()).runTests();
   }
 
-  private static AppleConfiguration[] subject() {
+  private static ImmutableList<AppleConfiguration> getSubjects() {
     AppleCommandLineOptions firstOptions = new AppleCommandLineOptions();
     firstOptions.mandatoryMinimumVersion = false;
     firstOptions.iosSdkVersion = DottedVersion.fromString("2.0");
@@ -59,15 +61,12 @@
     firstOptions.targetUsesAppleCrosstool = true;
     firstOptions.xcodeVersion = "1.0";
     try {
-      return new AppleConfiguration[] {
-        new AppleConfiguration(
-            firstOptions,
-            "iosCpuArg"),
-        AppleConfiguration.create(
-            BuildOptions.of(ImmutableList.of(AppleCommandLineOptions.class))
-                .get(AppleCommandLineOptions.class),
-            "another cpu")
-      };
+      return ImmutableList.of(
+          new AppleConfiguration(firstOptions, "iosCpuArg"),
+          AppleConfiguration.create(
+              BuildOptions.of(ImmutableList.of(AppleCommandLineOptions.class))
+                  .get(AppleCommandLineOptions.class),
+              "another cpu"));
     } catch (OptionsParsingException e) {
       throw new IllegalStateException(e);
     }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
index cfedf7b..985cc4a 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
@@ -28,7 +28,6 @@
 import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.packages.Rule;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.testutil.TestConstants;
 import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
@@ -50,9 +49,6 @@
   /** Test option that has its null default overridden by its fragment. */
   @AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS)
   public static class LateBoundTestOptions extends FragmentOptions {
-    public static final ObjectCodec<LateBoundTestOptions> CODEC =
-        new ConfigSettingTest_LateBoundTestOptions_AutoCodec();
-
     public LateBoundTestOptions() {}
 
     @Option(
@@ -66,9 +62,6 @@
 
   @AutoCodec
   static class LateBoundTestOptionsFragment extends BuildConfiguration.Fragment {
-    public static final ObjectCodec<LateBoundTestOptionsFragment> CODEC =
-        new ConfigSettingTest_LateBoundTestOptionsFragment_AutoCodec();
-
     @Override
     public Map<String, Object> lateBoundOptionDefaults() {
       return ImmutableMap.<String, Object>of("opt_with_default", "overridden");
@@ -96,9 +89,6 @@
   /** Test option which is private. */
   @AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS)
   public static class InternalTestOptions extends FragmentOptions {
-    public static final ObjectCodec<InternalTestOptions> CODEC =
-        new ConfigSettingTest_InternalTestOptions_AutoCodec();
-
     public InternalTestOptions() {}
 
     @Option(
@@ -113,8 +103,6 @@
 
   @AutoCodec
   static class InternalTestOptionsFragment extends BuildConfiguration.Fragment {
-    public static final ObjectCodec<InternalTestOptionsFragment> CODEC =
-        new ConfigSettingTest_InternalTestOptionsFragment_AutoCodec();
   }
 
   private static class InternalTestOptionsLoader implements ConfigurationFragmentFactory {
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
index d9a2422..a857be4 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java
@@ -34,7 +34,7 @@
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.StructureBuilder;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.VariableValue;
 import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.VariableValueBuilder;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.testutil.TestUtils;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain;
@@ -142,9 +142,8 @@
                 "}")
             .getFeatureConfiguration(ImmutableSet.of("a"));
 
-    ObjectCodecTester.newBuilder(FeatureConfiguration.CODEC)
-        .addSubjects(emptyConfiguration, emptyFeatures, featuresWithFlags, featureWithEnvSet)
-        .buildAndRunTests();
+    new SerializationTester(emptyConfiguration, emptyFeatures, featuresWithFlags, featureWithEnvSet)
+        .runTests();
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/MockCppSemantics.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/MockCppSemantics.java
index 2e2befe..cc268eb 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/MockCppSemantics.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/MockCppSemantics.java
@@ -22,8 +22,7 @@
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.rules.cpp.CcCompilationInfo.Builder;
 import com.google.devtools.build.lib.rules.cpp.CppConfiguration.HeadersCheckingMode;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
-import com.google.devtools.build.lib.skyframe.serialization.SingletonCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 
 /**
  * Null-object like {@link CppSemantics} implementation. Only to be used in tests that don't depend
@@ -31,10 +30,7 @@
  */
 @Immutable
 public final class MockCppSemantics implements CppSemantics {
-  public static final MockCppSemantics INSTANCE = new MockCppSemantics();
-
-  public static final ObjectCodec<MockCppSemantics> CODEC =
-      SingletonCodec.of(INSTANCE, "MockCppSemantics");
+  @AutoCodec public static final MockCppSemantics INSTANCE = new MockCppSemantics();
 
   private MockCppSemantics() {}
 
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 d5174c5..eb62a85 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
@@ -18,7 +18,7 @@
 import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
 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.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.vfs.FileSystem;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.build.lib.vfs.Root;
@@ -32,8 +32,7 @@
 
   @Test
   public void testSerialization() throws Exception {
-    ObjectCodecTester.newBuilder(GlobDescriptor.CODEC)
-        .addSubjects(
+    new SerializationTester(
             GlobDescriptor.create(
                 PackageIdentifier.create("@foo", PathFragment.create("//bar")),
                 Root.fromPath(FsUtils.TEST_FILESYSTEM.getPath("/packageRoot")),
@@ -47,8 +46,12 @@
                 "pattern",
                 /*excludeDirs=*/ true))
         .addDependency(FileSystem.class, FsUtils.TEST_FILESYSTEM)
-        .verificationFunction((orig, deserialized) -> assertThat(deserialized).isSameAs(orig))
-        .buildAndRunTests();
+        .setVerificationFunction(GlobDescriptorTest::verifyEquivalent)
+        .runTests();
+  }
+
+  private static void verifyEquivalent(GlobDescriptor orig, GlobDescriptor deserialized) {
+    assertThat(deserialized).isSameAs(orig);
   }
 
   @Test
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 b15782c..a7b4602 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
@@ -50,7 +50,7 @@
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.EventKind;
 import com.google.devtools.build.lib.events.StoredEventHandler;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.testutil.TestUtils;
 import com.google.devtools.build.lib.vfs.FileStatus;
 import com.google.devtools.build.lib.vfs.FileSystem;
@@ -115,10 +115,9 @@
 
   @Test
   public void testCodec() throws Exception {
-    ObjectCodecTester.newBuilder(Artifact.CODEC)
-        .addSubjects(outOne, outOneFileOne)
+    new SerializationTester(outOne, outOneFileOne)
         .addDependency(FileSystem.class, scratch.getFileSystem())
-        .buildAndRunTests();
+        .runTests();
   }
 
   /** Simple smoke test. If this isn't passing, something is very wrong... */
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
index b2a2d49..745ad95 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
@@ -15,17 +15,17 @@
 package com.google.devtools.build.lib.skyframe.serialization;
 
 import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.cmdline.LabelCodec;
-import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
-/** Basic tests for {@link LabelCodec}. */
+/** Basic tests for {@link Label}'s codec. */
 @RunWith(JUnit4.class)
-public class LabelCodecTest extends AbstractObjectCodecTest<Label> {
+public class LabelCodecTest {
 
-  public LabelCodecTest() throws LabelSyntaxException {
-    super(new LabelCodec(), Label.parseAbsolute("//foo/bar:baz"));
+  @Test
+  public void testCodec() throws Exception {
+    new SerializationTester(Label.parseAbsolute("//foo/bar:baz")).runTests();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
index a9c9ff7..7556177 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
@@ -15,18 +15,19 @@
 package com.google.devtools.build.lib.skyframe.serialization;
 
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.cmdline.PackageIdentifierCodec;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.vfs.PathFragment;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
-/** Basic tests for {@link PackageIdentifierCodec}. */
+/** Basic tests for {@link PackageIdentifier}'s codec. */
 @RunWith(JUnit4.class)
-public class PackageIdentifierCodecTest extends AbstractObjectCodecTest<PackageIdentifier> {
+public class PackageIdentifierCodecTest {
 
-  public PackageIdentifierCodecTest() throws Exception {
-    super(
-        new PackageIdentifierCodec(), PackageIdentifier.create("@foo", PathFragment.create("bar")));
+  @Test
+  public void testCodec() throws Exception {
+    new SerializationTester(PackageIdentifier.create("@foo", PathFragment.create("bar")))
+        .runTests();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java b/src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java
index df45f89..38f2957 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java
@@ -16,7 +16,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import com.google.devtools.build.lib.events.Location.LineAndColumn;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.util.Pair;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import org.junit.Test;
@@ -86,8 +86,7 @@
 
   @Test
   public void testCodec() throws Exception {
-    ObjectCodecTester.newBuilder(LineNumberTable.CODEC)
-        .addSubjects(
+    new SerializationTester(
             create(
                 "#\n"
                     + "#line 67 \"/foo\"\n"
@@ -96,6 +95,6 @@
                     + "#line 23 \"/ba.r\"\n"
                     + "vardef(x,y)\n"),
             create("\ntwo\nthree\n\nfive\n"))
-        .buildAndRunTests();
+        .runTests();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/util/RegexFilterTest.java b/src/test/java/com/google/devtools/build/lib/util/RegexFilterTest.java
index f74e28b..2325487 100644
--- a/src/test/java/com/google/devtools/build/lib/util/RegexFilterTest.java
+++ b/src/test/java/com/google/devtools/build/lib/util/RegexFilterTest.java
@@ -19,7 +19,7 @@
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.testing.EqualsTester;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.common.options.OptionsParsingException;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -149,8 +149,7 @@
 
   @Test
   public void codec() throws Exception {
-    ObjectCodecTester.newBuilder(RegexFilter.CODEC)
-        .addSubjects(
+    new SerializationTester(
             ImmutableList.of(
                     "",
                     "a/b,+^c,_test$",
@@ -160,6 +159,6 @@
                 .stream()
                 .map(RegexFilterTest::safeCreateFilter)
                 .collect(toImmutableList()))
-        .buildAndRunTests();
+        .runTests();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
index 9470604..6122aba 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
@@ -21,7 +21,7 @@
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.testing.EqualsTester;
-import com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.testutil.MoreAsserts;
 import com.google.devtools.build.lib.testutil.TestUtils;
 import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
@@ -546,13 +546,12 @@
 
   @Test
   public void testCodec() throws Exception {
-    ObjectCodecTester.newBuilder(PathFragment.CODEC)
-        .addSubjects(
+    new SerializationTester(
             ImmutableList.of("", "a", "/foo", "foo/bar/baz", "/a/path/fragment/with/lots/of/parts")
                 .stream()
                 .map(PathFragment::create)
                 .collect(toImmutableList()))
-        .buildAndRunTests();
+        .runTests();
   }
 
   @Test
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 3588b38..dd0f611 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,7 +18,7 @@
 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.testutils.ObjectCodecTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
 import com.google.devtools.build.lib.testutil.MoreAsserts;
 import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
 import java.util.Comparator;
@@ -97,10 +97,8 @@
 
   @Test
   public void testSerialization() throws Exception {
-    ObjectCodecTester.newBuilder(Root.CODEC)
-        .addSubjects(Root.absoluteRoot(fs), Root.fromPath(fs.getPath("/foo")))
+    new SerializationTester(Root.absoluteRoot(fs), Root.fromPath(fs.getPath("/foo")))
         .addDependency(FileSystem.class, fs)
-        .skipBadDataTest()
-        .buildAndRunTests();
+        .runTests();
   }
 }