Add a few inspections to Gson tests

Bug: b/295302135
Change-Id: I04db65871e4e759f2ff72ddff2c9fcb22adf1086
diff --git a/src/test/java/com/android/tools/r8/gson/GsonDefaultConstructorTest.java b/src/test/java/com/android/tools/r8/gson/GsonDefaultConstructorTest.java
index 5c61354..9d0b65d 100644
--- a/src/test/java/com/android/tools/r8/gson/GsonDefaultConstructorTest.java
+++ b/src/test/java/com/android/tools/r8/gson/GsonDefaultConstructorTest.java
@@ -3,11 +3,19 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.gson;
 
+import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
+import static org.hamcrest.MatcherAssert.assertThat;
+
 import com.android.tools.r8.ProguardVersion;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
+import com.android.tools.r8.gson.GsonNoDefaultConstructorTest.Data;
 import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.StringUtils;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.annotations.SerializedName;
@@ -41,6 +49,14 @@
 
   private static final String EXPECTED_OUTPUT = StringUtils.lines("Hello, world!");
 
+  private void inspect(CodeInspector inspector) {
+    ClassSubject dataSubject = inspector.clazz(Data.class);
+    assertThat(dataSubject, isPresentAndRenamed());
+    assertThat(dataSubject.uniqueFieldWithOriginalName("s"), isPresentAndRenamed());
+    assertThat(dataSubject.init(), isPresent());
+    assertThat(dataSubject.init("java.lang.String"), isAbsent());
+  }
+
   @Test
   public void testR8() throws Exception {
     parameters.assumeR8TestParameters();
@@ -51,6 +67,8 @@
         .addKeepMainRule(TestClass.class)
         .setMinApi(parameters)
         .run(parameters.getRuntime(), TestClass.class, enableUnsafe ? "enable" : "disable")
+        .inspect(this::serializedNamePresentAndRenamed)
+        .inspect(this::inspect)
         .assertSuccessWithOutput(EXPECTED_OUTPUT);
   }
 
diff --git a/src/test/java/com/android/tools/r8/gson/GsonNoDefaultConstructorTest.java b/src/test/java/com/android/tools/r8/gson/GsonNoDefaultConstructorTest.java
index 5a0244a..b536709 100644
--- a/src/test/java/com/android/tools/r8/gson/GsonNoDefaultConstructorTest.java
+++ b/src/test/java/com/android/tools/r8/gson/GsonNoDefaultConstructorTest.java
@@ -3,13 +3,19 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.gson;
 
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
 import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.ProguardVersion;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.StringUtils;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.annotations.SerializedName;
@@ -43,6 +49,13 @@
 
   private static final String EXPECTED_OUTPUT = StringUtils.lines("Hello, world!");
 
+  private void inspect(CodeInspector inspector) {
+    ClassSubject dataSubject = inspector.clazz(Data.class);
+    assertThat(dataSubject, isPresentAndRenamed());
+    assertThat(dataSubject.uniqueFieldWithOriginalName("s"), isPresentAndRenamed());
+    assertTrue(dataSubject.allMethods(FoundMethodSubject::isInstanceInitializer).isEmpty());
+  }
+
   @Test
   public void testR8() throws Exception {
     parameters.assumeR8TestParameters();
@@ -52,6 +65,9 @@
         .apply(GsonTestBase::addGsonLibraryAndKeepRules)
         .addKeepMainRule(TestClass.class)
         .setMinApi(parameters)
+        .compile()
+        .inspect(this::serializedNamePresentAndRenamed)
+        .inspect(this::inspect)
         .run(parameters.getRuntime(), TestClass.class, enableUnsafe ? "enable" : "disable")
         .applyIf(
             enableUnsafe,
diff --git a/src/test/java/com/android/tools/r8/gson/GsonTestBase.java b/src/test/java/com/android/tools/r8/gson/GsonTestBase.java
index 970450c..f0029f4 100644
--- a/src/test/java/com/android/tools/r8/gson/GsonTestBase.java
+++ b/src/test/java/com/android/tools/r8/gson/GsonTestBase.java
@@ -3,6 +3,9 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.gson;
 
+import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
+import static org.hamcrest.MatcherAssert.assertThat;
+
 import com.android.tools.r8.ArchiveProgramResourceProvider;
 import com.android.tools.r8.ProguardTestBuilder;
 import com.android.tools.r8.R8FullTestBuilder;
@@ -10,9 +13,16 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestShrinkerBuilder;
 import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
 
 public class GsonTestBase extends TestBase {
 
+  public static String SERIALIZED_NAME_CLASS_NAME = "com.google.gson.annotations.SerializedName";
+
+  public void serializedNamePresentAndRenamed(CodeInspector inspector) {
+    assertThat(inspector.clazz(SERIALIZED_NAME_CLASS_NAME), isPresentAndRenamed());
+  }
+
   static void addRuntimeLibrary(TestShrinkerBuilder builder, TestParameters parameters) {
     // Gson use java.lang.ReflectiveOperationException.
     builder.addDefaultRuntimeLibraryWithReflectiveOperationException(parameters);