Update API tests with the assertion configuration APIs

Bug: 139898386
Change-Id: I3bc75e854ccd565f5d7631e12e48d4d07fd153f5
diff --git a/src/test/apiUsageSample/com/android/tools/apiusagesample/D8ApiUsageSample.java b/src/test/apiUsageSample/com/android/tools/apiusagesample/D8ApiUsageSample.java
index 41b328c..642a4ab 100644
--- a/src/test/apiUsageSample/com/android/tools/apiusagesample/D8ApiUsageSample.java
+++ b/src/test/apiUsageSample/com/android/tools/apiusagesample/D8ApiUsageSample.java
@@ -4,6 +4,7 @@
 package com.android.tools.apiusagesample;
 
 import com.android.tools.r8.ArchiveProgramResourceProvider;
+import com.android.tools.r8.AssertionsConfiguration;
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.D8;
@@ -105,6 +106,7 @@
     useLibraryAndClasspathProvider(minApiLevel, libraries, classpath, inputs);
     useMainDexListFiles(minApiLevel, libraries, classpath, inputs, mainDexList);
     useMainDexClasses(minApiLevel, libraries, classpath, inputs, mainDexList);
+    useAssertionConfig(minApiLevel, libraries, classpath, inputs);
     useVArgVariants(minApiLevel, libraries, classpath, inputs, mainDexList);
     incrementalCompileAndMerge(minApiLevel, libraries, classpath, inputs);
   }
@@ -281,6 +283,54 @@
     }
   }
 
+  private static void useAssertionConfig(
+      int minApiLevel,
+      Collection<Path> libraries,
+      Collection<Path> classpath,
+      Collection<Path> inputs) {
+    try {
+      D8.run(
+          D8Command.builder(handler)
+              .setMinApiLevel(minApiLevel)
+              .setProgramConsumer(new EnsureOutputConsumer())
+              .addLibraryFiles(libraries)
+              .addClasspathFiles(classpath)
+              .addProgramFiles(inputs)
+              .addAssertionsConfiguration(b -> b.setScopeAll().setEnable().build())
+              .addAssertionsConfiguration(b -> b.setScopeAll().setDisable().build())
+              .addAssertionsConfiguration(
+                  b -> b.setScopePackage("com.android.tools.apiusagesample").setEnable().build())
+              .addAssertionsConfiguration(
+                  b ->
+                      b.setScopePackage("com.android.tools.apiusagesample")
+                          .setPassthrough()
+                          .build())
+              .addAssertionsConfiguration(
+                  b -> b.setScopePackage("com.android.tools.apiusagesample").setDisable().build())
+              .addAssertionsConfiguration(
+                  b ->
+                      b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
+                          .setEnable()
+                          .build())
+              .addAssertionsConfiguration(
+                  b ->
+                      b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
+                          .setPassthrough()
+                          .build())
+              .addAssertionsConfiguration(
+                  b ->
+                      b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
+                          .setDisable()
+                          .build())
+              .addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions)
+              .addAssertionsConfiguration(AssertionsConfiguration.Builder::passthroughAllAssertions)
+              .addAssertionsConfiguration(AssertionsConfiguration.Builder::disableAllAssertions)
+              .build());
+    } catch (CompilationFailedException e) {
+      throw new RuntimeException("Unexpected compilation exceptions", e);
+    }
+  }
+
   // Check API support for all the varg variants.
   private static void useVArgVariants(
       int minApiLevel,
diff --git a/src/test/apiUsageSample/com/android/tools/apiusagesample/R8ApiUsageSample.java b/src/test/apiUsageSample/com/android/tools/apiusagesample/R8ApiUsageSample.java
index 7203f39..8f57473 100644
--- a/src/test/apiUsageSample/com/android/tools/apiusagesample/R8ApiUsageSample.java
+++ b/src/test/apiUsageSample/com/android/tools/apiusagesample/R8ApiUsageSample.java
@@ -5,6 +5,7 @@
 
 import com.android.tools.r8.ArchiveClassFileProvider;
 import com.android.tools.r8.ArchiveProgramResourceProvider;
+import com.android.tools.r8.AssertionsConfiguration;
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.DexIndexedConsumer;
@@ -117,6 +118,7 @@
     useMainDexRules(minApiLevel, libraries, inputs, mainDexRules);
     useProguardConfigFiles(minApiLevel, libraries, inputs, mainDexList, pgConf);
     useProguardConfigLines(minApiLevel, libraries, inputs, mainDexList, pgConf);
+    useAssertionConfig(minApiLevel, libraries, inputs);
     useVArgVariants(minApiLevel, libraries, inputs, mainDexList, mainDexRules, pgConf);
     useProguardConfigConsumers(minApiLevel, libraries, inputs, pgConf);
   }
@@ -402,6 +404,50 @@
     }
   }
 
+  private static void useAssertionConfig(
+      int minApiLevel, Collection<Path> libraries, Collection<Path> inputs) {
+    try {
+      R8.run(
+          R8Command.builder(handler)
+              .setMinApiLevel(minApiLevel)
+              .setProgramConsumer(new R8ApiUsageSample.EnsureOutputConsumer())
+              .addLibraryFiles(libraries)
+              .addProgramFiles(inputs)
+              .addAssertionsConfiguration(b -> b.setScopeAll().setEnable().build())
+              .addAssertionsConfiguration(b -> b.setScopeAll().setDisable().build())
+              .addAssertionsConfiguration(
+                  b -> b.setScopePackage("com.android.tools.apiusagesample").setEnable().build())
+              .addAssertionsConfiguration(
+                  b ->
+                      b.setScopePackage("com.android.tools.apiusagesample")
+                          .setPassthrough()
+                          .build())
+              .addAssertionsConfiguration(
+                  b -> b.setScopePackage("com.android.tools.apiusagesample").setDisable().build())
+              .addAssertionsConfiguration(
+                  b ->
+                      b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
+                          .setEnable()
+                          .build())
+              .addAssertionsConfiguration(
+                  b ->
+                      b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
+                          .setPassthrough()
+                          .build())
+              .addAssertionsConfiguration(
+                  b ->
+                      b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
+                          .setDisable()
+                          .build())
+              .addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions)
+              .addAssertionsConfiguration(AssertionsConfiguration.Builder::passthroughAllAssertions)
+              .addAssertionsConfiguration(AssertionsConfiguration.Builder::disableAllAssertions)
+              .build());
+    } catch (CompilationFailedException e) {
+      throw new RuntimeException("Unexpected compilation exceptions", e);
+    }
+  }
+
   // Check API support for all the varg variants.
   private static void useVArgVariants(
       int minApiLevel,
diff --git a/tests/d8_api_usage_sample.jar b/tests/d8_api_usage_sample.jar
index e47a3ad..da01fdb 100644
--- a/tests/d8_api_usage_sample.jar
+++ b/tests/d8_api_usage_sample.jar
Binary files differ
diff --git a/tests/r8_api_usage_sample.jar b/tests/r8_api_usage_sample.jar
index 4970fe1..da01fdb 100644
--- a/tests/r8_api_usage_sample.jar
+++ b/tests/r8_api_usage_sample.jar
Binary files differ