Use R8 with relocated deps for generating keep rules for R8lib
Bug: 155571455
Change-Id: I8588c4173db62fc1b171d53ed2aba769c5587f6c
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);
+ }
}
}
}