diff --git a/build.gradle b/build.gradle
index 03cec06..8d1eb6b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -951,20 +951,21 @@
         // TODO(b/154785341): We should remove this.
         standardOutput new FileOutputStream(r8LibGeneratedKeepRulesPath)
     }
-    dependsOn r8WithRelocatedDeps
-    dependsOn r8NoManifestWithDeps
+    // Depend on r8WithDeps for running baseR8CommandLine.
+    dependsOn r8WithDeps
+    dependsOn r8NoManifestWithRelocatedDeps
     dependsOn testJar
     dependsOn downloadOpenJDKrt
     inputs.files ([
-            r8WithRelocatedDeps.outputs,
-            r8NoManifestWithDeps.outputs,
+            r8WithDeps.outputs,
+            r8NoManifestWithRelocatedDeps.outputs,
             testJar.outputs])
     outputs.file r8LibGeneratedKeepRulesPath
     commandLine baseR8CommandLine([
             "printuses",
             "--keeprules-allowobfuscation",
             "third_party/openjdk/openjdk-rt-1.8/rt.jar",
-            r8NoManifestWithDeps.outputs.files[0],
+            r8NoManifestWithRelocatedDeps.outputs.files[0],
             testJar.outputs.files[0]])
     workingDir = projectDir
 }
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewritePassThroughTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewritePassThroughTest.java
index fcb5958..32a0e6b 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewritePassThroughTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewritePassThroughTest.java
@@ -13,6 +13,7 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
+import com.android.tools.r8.kotlin.KotlinMetadataWriter;
 import com.android.tools.r8.shaking.ProguardKeepAttributes;
 import com.android.tools.r8.utils.codeinspector.ClassSubject;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -77,13 +78,12 @@
       assertEquals(originalHeader.getPackageName(), rewrittenHeader.getPackageName());
       // We cannot assert equality of the data since it may be ordered differently. Instead we use
       // the KotlinMetadataWriter.
-      // TODO(b/155571455): Deactivating the method call to kotlinMetadataString until resolved.
-      // String expected = KotlinMetadataWriter.kotlinMetadataToString("", originalMetadata);
-      // String actual = KotlinMetadataWriter.kotlinMetadataToString("", rewrittenMetadata);
-      // // TODO(b/155534905): For invalid synthetic class lambdas, we emit null after rewriting.
-      // if (clazzSubject.getKotlinClassMetadata().getHeader().getKind() != 3) {
-      //   assertEquals(expected, actual);
-      // }
+      String expected = KotlinMetadataWriter.kotlinMetadataToString("", originalMetadata);
+      String actual = KotlinMetadataWriter.kotlinMetadataToString("", rewrittenMetadata);
+      // TODO(b/155534905): For invalid synthetic class lambdas, we emit null after rewriting.
+      if (clazzSubject.getKotlinClassMetadata().getHeader().getKind() != 3) {
+        assertEquals(expected, actual);
+      }
     }
   }
 }
