Update tests for adding synthetics to baseline profile

Change-Id: I9a38476ae80ef77fadbee019eb48cd4346d37f7a
diff --git a/src/test/java/com/android/tools/r8/profile/art/completeness/ApiOutlineProfileRewritingTest.java b/src/test/java/com/android/tools/r8/profile/art/completeness/ApiOutlineProfileRewritingTest.java
index 02a4fe6..f5959e8 100644
--- a/src/test/java/com/android/tools/r8/profile/art/completeness/ApiOutlineProfileRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/profile/art/completeness/ApiOutlineProfileRewritingTest.java
@@ -16,7 +16,6 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.apimodel.ApiModelingTestHelper;
 import com.android.tools.r8.profile.art.model.ExternalArtProfile;
 import com.android.tools.r8.profile.art.utils.ArtProfileInspector;
 import com.android.tools.r8.synthesis.SyntheticItemsTestUtils;
@@ -79,8 +78,6 @@
         .addKeepMainRule(Main.class)
         .addArtProfileForRewriting(getArtProfile())
         .apply(setMockApiLevelForClass(LibraryClass.class, classApiLevel))
-        .apply(ApiModelingTestHelper::enableApiCallerIdentification)
-        .apply(ApiModelingTestHelper::enableOutliningOfMethods)
         .setMinApi(parameters.getApiLevel())
         .compile()
         .inspectResidualArtProfile(this::inspect)
@@ -104,7 +101,7 @@
         .hasConstClassOutlinedFromUntil(
             Main.class.getMethod("main", String[].class), classApiLevel);
 
-    // Check outline was added to ART profile.
+    // Check outline was added to program.
     ClassSubject apiOutlineClassSubject =
         inspector.clazz(SyntheticItemsTestUtils.syntheticApiOutlineClass(Main.class, 0));
     assertThat(apiOutlineClassSubject, notIf(isPresent(), isLibraryClassAlwaysPresent()));
diff --git a/src/test/java/com/android/tools/r8/profile/art/completeness/NestBasedAccessBridgesProfileRewritingTest.java b/src/test/java/com/android/tools/r8/profile/art/completeness/NestBasedAccessBridgesProfileRewritingTest.java
index 81a74af..e376dbc 100644
--- a/src/test/java/com/android/tools/r8/profile/art/completeness/NestBasedAccessBridgesProfileRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/profile/art/completeness/NestBasedAccessBridgesProfileRewritingTest.java
@@ -18,6 +18,7 @@
 import com.android.tools.r8.profile.art.completeness.NestBasedAccessBridgesProfileRewritingTest.Main.NestMember;
 import com.android.tools.r8.profile.art.model.ExternalArtProfile;
 import com.android.tools.r8.profile.art.utils.ArtProfileInspector;
+import com.android.tools.r8.references.Reference;
 import com.android.tools.r8.synthesis.SyntheticItemsTestUtils;
 import com.android.tools.r8.utils.MethodReferenceUtils;
 import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -59,6 +60,7 @@
         .addProgramClassFileData(getProgramClassFileData())
         .addKeepMainRule(Main.class)
         .addArtProfileForRewriting(getArtProfile())
+        .addOptionsModification(options -> options.callSiteOptimizationOptions().setEnabled(false))
         .enableInliningAnnotations()
         .setMinApi(parameters.getApiLevel())
         .compile()
@@ -72,6 +74,7 @@
         transformer(Main.class).setNest(Main.class, NestMember.class).transform(),
         transformer(NestMember.class)
             .setNest(Main.class, NestMember.class)
+            .setPrivate(NestMember.class.getDeclaredConstructor())
             .setPrivate(NestMember.class.getDeclaredField("instanceField"))
             .setPrivate(NestMember.class.getDeclaredField("staticField"))
             .setPrivate(NestMember.class.getDeclaredMethod("instanceMethod"))
@@ -90,6 +93,14 @@
     ClassSubject nestMemberClassSubject = inspector.clazz(NestMember.class);
     assertThat(nestMemberClassSubject, isPresent());
 
+    ClassSubject syntheticConstructorArgumentClassSubject =
+        inspector.clazz(
+            SyntheticItemsTestUtils.syntheticNestConstructorArgumentClass(
+                Reference.classFromClass(NestMember.class)));
+    assertThat(
+        syntheticConstructorArgumentClassSubject,
+        notIf(isPresent(), parameters.canUseNestBasedAccesses()));
+
     MethodSubject syntheticNestInstanceFieldGetterMethodSubject =
         nestMemberClassSubject.uniqueMethodWithOriginalName(
             SyntheticItemsTestUtils.syntheticNestInstanceFieldGetter(
@@ -144,7 +155,8 @@
         syntheticNestStaticMethodAccessorMethodSubject,
         notIf(isPresent(), parameters.canUseNestBasedAccesses()));
 
-    // TODO(b/265729283): Should contain the nest bridge methods.
+    // TODO(b/265729283): Should contain the nest bridge methods and the synthesized constructor
+    //  argument class.
     profileInspector
         .assertContainsMethodRule(MethodReferenceUtils.mainMethod(Main.class))
         .assertContainsNoOtherRules();
@@ -167,6 +179,8 @@
       /*private*/ int instanceField;
       /*private*/ static int staticField;
 
+      /*private*/ NestMember() {}
+
       @NeverInline
       /*private*/ int instanceMethod() {
         return System.currentTimeMillis() > 0 ? 2 : 0;
diff --git a/src/test/java/com/android/tools/r8/synthesis/SyntheticItemsTestUtils.java b/src/test/java/com/android/tools/r8/synthesis/SyntheticItemsTestUtils.java
index 19ed989..cf968ea 100644
--- a/src/test/java/com/android/tools/r8/synthesis/SyntheticItemsTestUtils.java
+++ b/src/test/java/com/android/tools/r8/synthesis/SyntheticItemsTestUtils.java
@@ -146,6 +146,13 @@
         originalMethod.getMethodDescriptor());
   }
 
+  public static ClassReference syntheticNestConstructorArgumentClass(
+      ClassReference classReference) {
+    return Reference.classFromDescriptor(
+        SyntheticNaming.createDescriptor(
+            "", naming.INIT_TYPE_ARGUMENT, classReference.getBinaryName(), ""));
+  }
+
   public static MethodReference syntheticNestInstanceFieldGetter(Field field) {
     FieldReference fieldReference = Reference.fieldFromField(field);
     return Reference.method(
diff --git a/src/test/java/com/android/tools/r8/transformers/ClassFileTransformer.java b/src/test/java/com/android/tools/r8/transformers/ClassFileTransformer.java
index 7742119..4adbc9a 100644
--- a/src/test/java/com/android/tools/r8/transformers/ClassFileTransformer.java
+++ b/src/test/java/com/android/tools/r8/transformers/ClassFileTransformer.java
@@ -502,14 +502,22 @@
     return setAccessFlags(method, MethodAccessFlags::setBridge);
   }
 
+  public ClassFileTransformer setPrivate(Constructor<?> constructor) {
+    return setAccessFlags(constructor, ClassFileTransformer::setPrivate);
+  }
+
   public ClassFileTransformer setPrivate(Field field) {
-    return setAccessFlags(
-        field,
-        accessFlags -> {
-          accessFlags.setPrivate();
-          accessFlags.unsetProtected();
-          accessFlags.unsetPublic();
-        });
+    return setAccessFlags(field, ClassFileTransformer::setPrivate);
+  }
+
+  public ClassFileTransformer setPrivate(Method method) {
+    return setAccessFlags(method, ClassFileTransformer::setPrivate);
+  }
+
+  private static void setPrivate(AccessFlags<?> accessFlags) {
+    accessFlags.unsetPublic();
+    accessFlags.unsetProtected();
+    accessFlags.setPrivate();
   }
 
   public ClassFileTransformer setPublic(Method method) {
@@ -522,16 +530,6 @@
         });
   }
 
-  public ClassFileTransformer setPrivate(Method method) {
-    return setAccessFlags(
-        method,
-        accessFlags -> {
-          accessFlags.unsetPublic();
-          accessFlags.unsetProtected();
-          accessFlags.setPrivate();
-        });
-  }
-
   public ClassFileTransformer setSynthetic(Method method) {
     return setAccessFlags(method, AccessFlags::setSynthetic);
   }