Fix SystemUIAppNoTreeShaking benchmark
Change-Id: I986803f29aeb1facf3b28e555eb8bcecb9b80d78
diff --git a/src/test/java/com/android/tools/r8/benchmarks/appdumps/AppDumpBenchmarkBuilder.java b/src/test/java/com/android/tools/r8/benchmarks/appdumps/AppDumpBenchmarkBuilder.java
index b3c22ce..ac1e59d 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/appdumps/AppDumpBenchmarkBuilder.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/appdumps/AppDumpBenchmarkBuilder.java
@@ -3,7 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.benchmarks.appdumps;
+import static org.junit.Assert.assertTrue;
+import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.CompilationMode;
import com.android.tools.r8.LibraryDesugaringTestConfiguration;
import com.android.tools.r8.R8FullTestBuilder;
@@ -66,6 +68,7 @@
private int fromRevision = -1;
private CompilationMode compilationMode;
private boolean enableLibraryDesugaring = true;
+ private boolean runtimeOnly = false;
private final List<String> programPackages = new ArrayList<>();
public void verify() {
@@ -113,6 +116,11 @@
return this;
}
+ public AppDumpBenchmarkBuilder setRuntimeOnly() {
+ this.runtimeOnly = true;
+ return this;
+ }
+
public AppDumpBenchmarkBuilder addProgramPackages(String... pkgs) {
return addProgramPackages(Arrays.asList(pkgs));
}
@@ -182,25 +190,29 @@
public BenchmarkConfig buildR8WithResourceShrinking(
ThrowableConsumer<? super R8FullTestBuilder> configuration) {
verify();
- return BenchmarkConfig.builder()
- .setName(name)
- .setTarget(BenchmarkTarget.R8)
- .setSuite(BenchmarkSuite.OPENSOURCE_BENCHMARKS)
- .setMethod(runR8WithResourceShrinking(this, configuration))
- .setFromRevision(fromRevision)
- .addDependency(dumpDependency)
- // TODO(b/368282141): Also measure resource size.
- .measureRunTime()
- .measureCodeSize()
- .measureInstructionCodeSize()
- .measureComposableInstructionCodeSize()
- .measureDexSegmentsCodeSize()
- .measureDex2OatCodeSize()
- // TODO(b/373550435): Update dex2oat to enable checking absence of verification errors on
- // SystemUI.
- .setEnableDex2OatVerification(!name.equals("SystemUIApp"))
- .setTimeout(10, TimeUnit.MINUTES)
- .build();
+ BenchmarkConfig.Builder builder =
+ BenchmarkConfig.builder()
+ .setName(name)
+ .setTarget(BenchmarkTarget.R8)
+ .setSuite(BenchmarkSuite.OPENSOURCE_BENCHMARKS)
+ .setMethod(runR8WithResourceShrinking(this, configuration))
+ .setFromRevision(fromRevision)
+ .addDependency(dumpDependency)
+ // TODO(b/368282141): Also measure resource size.
+ .measureRunTime()
+ // TODO(b/373550435): Update dex2oat to enable checking absence of verification errors
+ // on SystemUI.
+ .setEnableDex2OatVerification(!name.equals("SystemUIApp"))
+ .setTimeout(10, TimeUnit.MINUTES);
+ if (!runtimeOnly) {
+ builder
+ .measureCodeSize()
+ .measureInstructionCodeSize()
+ .measureComposableInstructionCodeSize()
+ .measureDexSegmentsCodeSize()
+ .measureDex2OatCodeSize();
+ }
+ return builder.build();
}
public BenchmarkConfig buildIncrementalD8() {
@@ -380,8 +392,8 @@
.benchmarkDex2OatCodeSize(
results,
environment.getConfig().isDex2OatVerificationEnabled());
- } catch (AbortBenchmarkException e) {
- // Ignore.
+ } catch (CompilationFailedException e) {
+ assertTrue(e.getCause() instanceof AbortBenchmarkException);
}
});
});
diff --git a/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/SystemUIBenchmarks.java b/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/SystemUIBenchmarks.java
index 224219a..9ab0474 100644
--- a/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/SystemUIBenchmarks.java
+++ b/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/SystemUIBenchmarks.java
@@ -47,6 +47,7 @@
.setName("SystemUIAppTreeShaking")
.setDumpDependencyPath(dir)
.setFromRevision(16457)
+ .setRuntimeOnly()
.buildR8WithResourceShrinking(SystemUIBenchmarks::configureTreeShaking));
}
@@ -70,8 +71,11 @@
(appInfo, enqueuerMode) -> {
if (appInfo.options().printTimes) {
Timing timing = appInfo.app().timing;
- timing.end();
- timing.report();
+ timing.end(); // End "Create result"
+ timing.end(); // End "Trace application"
+ timing.end(); // End "Enqueuer"
+ timing.end(); // End "Strip unused code"
+ timing.report(); // Report "R8 main"
}
throw new AbortBenchmarkException();
});