Add a CODEC for Artifact.

PiperOrigin-RevId: 184144301
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 cd47c41..363bae9 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,6 +25,8 @@
 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.Scratch;
 import com.google.devtools.build.lib.vfs.Path;
 import com.google.devtools.build.lib.vfs.PathFragment;
@@ -339,6 +341,23 @@
   }
 
   @Test
+  public void testCodec() throws Exception {
+    ObjectCodecTester.newBuilder(
+            new InjectingObjectCodecAdapter<>(Artifact.CODEC, () -> scratch.getFileSystem()))
+        .addSubjects(
+            new Artifact(PathFragment.create("src/a"), rootDir),
+            new Artifact(
+                PathFragment.create("src/b"), ArtifactRoot.asSourceRoot(Root.fromPath(execDir))),
+            new Artifact(
+                scratch.file("/src/c"),
+                ArtifactRoot.asDerivedRoot(
+                    scratch.getFileSystem().getPath("/"), scratch.dir("/src")),
+                PathFragment.create("c"),
+                new LabelArtifactOwner(Label.parseAbsoluteUnchecked("//foo:bar"))))
+        .buildAndRunTests();
+  }
+
+  @Test
   public void testLongDirname() throws Exception {
     String dirName = createDirNameArtifact().getDirname();