xref: /aosp_15_r20/external/leakcanary2/shark-hprof/src/test/java/shark/ProguardMappingTest.kt (revision d9e8da70d8c9df9a41d7848ae506fb3115cae6e6)
1 package shark
2 
3 import org.assertj.core.api.Assertions.assertThat
4 import org.junit.Test
5 
6 class ProguardMappingTest {
7 
8   @Test
readAndParseMappingFilenull9   fun readAndParseMappingFile() {
10     val proguardMappingText = """
11             # comment
12             com.test.ClearClassName1 -> com.test.ObfuscatedClassName1:
13                 com.test.FieldType1 clearFieldName1 -> obfuscatedFieldName1
14             com.test.ClearClassName2 -> com.test.ObfuscatedClassName2:
15                 com.test.FieldType2 clearFieldName2 -> obfuscatedFieldName2
16         """.trimIndent()
17 
18     val proguardMapping =
19       ProguardMappingReader(proguardMappingText.byteInputStream(Charsets.UTF_8))
20         .readProguardMapping()
21 
22     assertThat(
23       proguardMapping.deobfuscateClassName("com.test.ObfuscatedClassName1")
24     ).isEqualTo("com.test.ClearClassName1")
25 
26     assertThat(
27       proguardMapping.deobfuscateFieldName(
28         "com.test.ObfuscatedClassName1",
29         "obfuscatedFieldName1"
30       )
31     ).isEqualTo("clearFieldName1")
32 
33     assertThat(
34       proguardMapping.deobfuscateClassName("com.test.ObfuscatedClassName2")
35     ).isEqualTo("com.test.ClearClassName2")
36 
37     assertThat(
38       proguardMapping.deobfuscateFieldName(
39         "com.test.ObfuscatedClassName2",
40         "obfuscatedFieldName2"
41       )
42     ).isEqualTo("clearFieldName2")
43   }
44 }