Output:
Chunk ID: 9d8e7d
Wall time: 5.0016 seconds
Process running with session ID 6339
Original token count: 185
Output:
> Task :macrobenchmark:processBenchmarkManifest UP-TO-DATE
> Task :macrobenchmark:processBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:dexBuilderBenchmark
> Task :macrobenchmark:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :macrobenchmark:processBenchmarkJavaRes UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJavaResource UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :macrobenchmark:mergeExtDexBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :macrobenchmark:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :macrobenchmark:mergeDexBenchmark
> Task :macrobenchmark:packageBenchmark
> Task :macrobenchmark:createBenchmarkApkListingFileRedirect UP-TO-DATE


Output:
Chunk ID: 4cde29
Wall time: 5.0011 seconds
Process running with session ID 6339
Original token count: 0
Output:


Output:
Chunk ID: 1b9cb8
Wall time: 5.0008 seconds
Process running with session ID 6339
Original token count: 0
Output:


Output:
Chunk ID: c072de
Wall time: 5.0006 seconds
Process running with session ID 6339
Original token count: 0
Output:


Output:
Chunk ID: 5c3602
Wall time: 5.0006 seconds
Process running with session ID 6339
Original token count: 0
Output:


The hardware-rendered GMD task is now past APK packaging and waiting in managed-device setup. It has not reached benchmark execution output yet.


Output:
Chunk ID: 318a6a
Wall time: 5.0019 seconds
Process running with session ID 6339
Original token count: 0
Output:


Output:
Chunk ID: c9c6f2
Wall time: 5.0008 seconds
Process running with session ID 6339
Original token count: 0
Output:


Output:
Chunk ID: 782338
Wall time: 5.0008 seconds
Process running with session ID 6339
Original token count: 0
Output:


Output:
Chunk ID: 7c56e1
Wall time: 5.0013 seconds
Process running with session ID 6339
Original token count: 0
Output:


Output:
Chunk ID: 90cf40
Wall time: 5.0005 seconds
Process running with session ID 6339
Original token count: 1368
Output:
07:08:55 E/SplitApkInstallerBase: Failed to commit install session 620016159 with command package install-commit 620016159. Error: INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl620016159.tmp/macrobenchmark-benchmark.apk: Attempt to get length of null array
Test execution failed with fatal error!
com.google.testing.platform.core.error.UtpException: ErrorName: PLUGIN_ERROR
NameSpace: com.google.testing.platform
ErrorCode: 2002
ErrorType: TEST
Message: ErrorName: INSTALL_PARSE_FAILED_NO_CERTIFICATES
NameSpace: DdmlibAndroidDeviceController
ErrorCode: 1
ErrorType: TEST
Message: Failed to install split APK(s): [/home/Messier82/projects/service-book/macrobenchmark/build/outputs/apk/benchmark/macrobenchmark-benchmark.apk]
	at com.google.testing.platform.plugin.PluginLifecycleKt.invokeOrThrow(PluginLifecycle.kt:553)
	at com.google.testing.platform.plugin.PluginLifecycleKt.invokeOrThrow$default(PluginLifecycle.kt:519)
	at com.google.testing.platform.plugin.PluginLifecycle$onBeforeAll$1$1.invoke(PluginLifecycle.kt:241)
	at com.google.testing.platform.plugin.PluginLifecycle$onBeforeAll$1$1.invoke(PluginLifecycle.kt:235)
	at com.google.testing.platform.core.telemetry.common.noop.NoopDiagnosticsScope.recordEvent(NoopDiagnosticsScope.kt:35)
	at com.google.testing.platform.core.telemetry.SequentialEventRecordRequest.record$java_com_google_testing_platform_core_telemetry_telemetry_api(EventRecordRequest.kt:71)
	at com.google.testing.platform.core.telemetry.DiagnosticsExtKt.record(DiagnosticsExt.kt:27)
	at com.google.testing.platform.core.telemetry.TelemetryKt.createEvent(Telemetry.kt:60)
	at com.google.testing.platform.plugin.PluginLifecycle.onBeforeAll(PluginLifecycle.kt:233)
	at com.google.testing.platform.executor.SingleDeviceExecutor$execute$2$1.invoke(SingleDeviceExecutor.kt:170)
	at com.google.testing.platform.executor.SingleDeviceExecutor$execute$2$1.invoke(SingleDeviceExecutor.kt:170)
	at com.google.testing.platform.lib.cancellation.ProcessCancellationContext.runUnlessCancelled(ProcessCancellationContext.kt:159)
	at com.google.testing.platform.executor.SingleDeviceExecutor.execute(SingleDeviceExecutor.kt:170)
	at com.google.testing.platform.RunnerImpl.run(RunnerImpl.kt:132)
	at com.google.testing.platform.server.strategy.NonInteractiveServerStrategy$run$exitCode$1$2.invoke(NonInteractiveServerStrategy.kt:126)
	at com.google.testing.platform.server.strategy.NonInteractiveServerStrategy$run$exitCode$1$2.invoke(NonInteractiveServerStrategy.kt:126)
	at com.google.testing.platform.core.telemetry.common.noop.NoopDiagnosticsScope.recordEvent(NoopDiagnosticsScope.kt:35)
	at com.google.testing.platform.core.telemetry.SequentialEventRecordRequest.record$java_com_google_testing_platform_core_telemetry_telemetry_api(EventRecordRequest.kt:71)
	at com.google.testing.platform.core.telemetry.DiagnosticsExtKt.record(DiagnosticsExt.kt:27)
	at com.google.testing.platform.core.telemetry.TelemetryKt.createEvent(Telemetry.kt:60)
	at com.google.testing.platform.server.strategy.NonInteractiveServerStrategy.run(NonInteractiveServerStrategy.kt:123)
	at com.google.testing.platform.main.MainKt$main$3$1.invokeSuspend(Main.kt:80)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
	at java.base@21.0.10/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base@21.0.10/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base@21.0.10/java.lang.Thread.run(Thread.java:1583)
Caused by: com.google.testing.platform.core.error.UtpException: ErrorName: INSTALL_PARSE_FAILED_NO_CERTIFICATES
NameSpace: DdmlibAndroidDeviceController
ErrorCode: 1
ErrorType: TEST
Message: Failed to install split APK(s): [/home/Messier82/projects/service-book/macrobenchmark/build/outputs/apk/benchmark/macrobenchmark-benchmark.apk]
	at com.android.tools.utp.plugins.deviceprovider.ddmlib.DdmlibAndroidDeviceController$executeAsync$deferred$1.invokeSuspend(DdmlibAndroidDeviceController.kt:273)
	... 5 more
Caused by: com.android.ddmlib.InstallException: Failed to commit install session 620016159 with command package install-commit 620016159. Error: INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl620016159.tmp/macrobenchmark-benchmark.apk: Attempt to get length of null array
	at com.android.ddmlib.SplitApkInstallerBase.installCommit(SplitApkInstallerBase.java:171)
	at com.android.ddmlib.SplitApkInstaller.install(SplitApkInstaller.java:85)
	at com.android.ddmlib.IDeviceSharedImpl.installPackages(IDeviceSharedImpl.java:395)
	at com.android.ddmlib.internal.DeviceImpl.lambda$installPackages$34(DeviceImpl.java:1491)
	at com.android.ddmlib.internal.DeviceImpl.logRun3(DeviceImpl.java:1833)
	at com.android.ddmlib.internal.DeviceImpl.installPackages(DeviceImpl.java:1488)
	at com.android.ddmlib.internal.DeviceImpl.lambda$installPackages$35(DeviceImpl.java:1503)
	at com.android.ddmlib.internal.DeviceImpl.logRun3(DeviceImpl.java:1833)
	at com.android.ddmlib.internal.DeviceImpl.installPackages(DeviceImpl.java:1499)
	at com.android.tools.utp.plugins.deviceprovider.ddmlib.DdmlibAndroidDevice.installPackages(DdmlibAndroidDevice.kt:80)
	at com.android.tools.utp.plugins.deviceprovider.ddmlib.DdmlibAndroidDeviceController$executeAsync$deferred$1.invokeSuspend(DdmlibAndroidDeviceController.kt:251)
	... 5 more


Output:
Chunk ID: bb6e47
Wall time: 5.0006 seconds
Process running with session ID 6339
Original token count: 1182
Output:
> Task :macrobenchmark:pixel2api33BenchmarkAndroidTest

Starting 0 tests on pixel2api33
Finished 0 tests on pixel2api33

> Task :macrobenchmark:pixel2api33BenchmarkAndroidTest FAILED
ErrorName: INSTALL_PARSE_FAILED_NO_CERTIFICATES
NameSpace: DdmlibAndroidDeviceController
ErrorCode: 1
ErrorType: TEST
Message: Failed to install split APK(s): [/home/Messier82/projects/service-book/macrobenchmark/build/outputs/apk/benchmark/macrobenchmark-benchmark.apk]
Failed to install split APK(s): [/home/Messier82/projects/service-book/macrobenchmark/build/outputs/apk/benchmark/macrobenchmark-benchmark.apk]
Failed to commit install session 620016159 with command package install-commit 620016159. Error: INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl620016159.tmp/macrobenchmark-benchmark.apk: Attempt to get length of null array
com.android.ddmlib.InstallException: Failed to commit install session 620016159 with command package install-commit 620016159. Error: INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl620016159.tmp/macrobenchmark-benchmark.apk: Attempt to get length of null array
	at com.android.ddmlib.SplitApkInstallerBase.installCommit(SplitApkInstallerBase.java:171)
	at com.android.ddmlib.SplitApkInstaller.install(SplitApkInstaller.java:85)
	at com.android.ddmlib.IDeviceSharedImpl.installPackages(IDeviceSharedImpl.java:395)
	at com.android.ddmlib.internal.DeviceImpl.lambda$installPackages$34(DeviceImpl.java:1491)
	at com.android.ddmlib.internal.DeviceImpl.logRun3(DeviceImpl.java:1833)
	at com.android.ddmlib.internal.DeviceImpl.installPackages(DeviceImpl.java:1488)
	at com.android.ddmlib.internal.DeviceImpl.lambda$installPackages$35(DeviceImpl.java:1503)
	at com.android.ddmlib.internal.DeviceImpl.logRun3(DeviceImpl.java:1833)
	at com.android.ddmlib.internal.DeviceImpl.installPackages(DeviceImpl.java:1499)
	at com.android.tools.utp.plugins.deviceprovider.ddmlib.DdmlibAndroidDevice.installPackages(DdmlibAndroidDevice.kt:80)
	at com.android.tools.utp.plugins.deviceprovider.ddmlib.DdmlibAndroidDeviceController$executeAsync$deferred$1.invokeSuspend(DdmlibAndroidDeviceController.kt:251)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

> Task :macrobenchmark:mergeBenchmarkTestResultProtos FAILED

[Incubating] Problems report is available at: file:///home/Messier82/projects/service-book/build/reports/problems/problems-report.html

FAILURE: Build completed with 2 failures.

1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':macrobenchmark:pixel2api33BenchmarkAndroidTest' (registered by plugin 'com.android.internal.test').
> Could not load test results from '/home/Messier82/projects/service-book/macrobenchmark/build/outputs/androidTest-results/managedDevice/benchmark/pixel2api33/TEST-pixel2api33-_macrobenchmark-.xml'.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.
==============================================================================

2: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':macrobenchmark:mergeBenchmarkTestResultProtos' (registered by plugin 'com.android.internal.test').
> Could not load test results from '/home/Messier82/projects/service-book/macrobenchmark/build/outputs/androidTest-results/managedDevice/benchmark/pixel2api33/TEST-pixel2api33-_macrobenchmark-.xml'.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.
==============================================================================

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/9.5.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 1m 49s
84 actionable tasks: 7 executed, 77 up-to-date


No. With a current hardware-rendered GMD run, the task reached device execution but failed before running tests: the macrobenchmark APK is not being accepted by the device because the `benchmark` test APK has no valid signing certificate. I’m going to fix the benchmark module signing config and rerun the focused task.


sed -n '1,180p' macrobenchmark/build.gradle.kts


Output:
Chunk ID: 532d6c
Wall time: 0.1314 seconds
Process exited with code 0
Original token count: 345
Output:
plugins {
    alias(libs.plugins.android.test)
}

android {
    namespace = "com.yorvana.macrobenchmark"
    compileSdk = 36
    targetProjectPath = ":app"

    defaultConfig {
        minSdk = 26
        targetSdk = 36
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR"
    }

    buildTypes {
        create("benchmark") {
            isDebuggable = false
            matchingFallbacks += listOf("release")
        }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

    testOptions {
        managedDevices {
            allDevices {
                create<com.android.build.api.dsl.ManagedVirtualDevice>("pixel2api33") {
                    device = "Pixel 2"
                    apiLevel = 33
                    systemImageSource = "aosp"
                    testedAbi = "x86_64"
                }
            }
        }
    }
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
    compilerOptions {
        jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
    }
}

dependencies {
    implementation(libs.androidx.benchmark.macro)
    implementation(libs.androidx.test.ext)
    implementation(libs.uiautomator)
}


Input:
*** Begin Patch
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/build.gradle.kts
@@
     buildTypes {
         create("benchmark") {
             isDebuggable = false
+            signingConfig = signingConfigs.getByName("debug")
             matchingFallbacks += listOf("release")
         }
     }
*** End Patch


Success. Updated the following files:
M /home/Messier82/projects/service-book/macrobenchmark/build.gradle.kts

@@ -19,2 +19,3 @@
             isDebuggable = false
+            signingConfig = signingConfigs.getByName("debug")
             matchingFallbacks += listOf("release")


Output:
Exit code: 0
Wall time: 0.8 seconds
Output:
Success. Updated the following files:
M /home/Messier82/projects/service-book/macrobenchmark/build.gradle.kts


Output:
Chunk ID: 791554
Wall time: 1.0015 seconds
Process running with session ID 58013
Original token count: 13
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off


Output:
Chunk ID: a56664
Wall time: 5.0009 seconds
Process running with session ID 58013
Original token count: 326
Output:

> Configure project :app
WARNING: The option setting 'android.testoptions.manageddevices.emulator.gpu=host' is experimental.

> Task :app:preBuild UP-TO-DATE
> Task :macrobenchmark:preBuild UP-TO-DATE
> Task :app:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:preBenchmarkBuild UP-TO-DATE
> Task :app:generateBenchmarkBuildConfig UP-TO-DATE
> Task :app:generateBenchmarkResources UP-TO-DATE
> Task :app:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:checkTestedAppObfuscationBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:javaPreCompileBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :macrobenchmark:validateSigningBenchmark
> Task :macrobenchmark:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:processBenchmarkNavigationResources UP-TO-DATE
> Task :app:parseBenchmarkLocalResources UP-TO-DATE
> Task :app:generateBenchmarkRFile UP-TO-DATE
> Task :app:compileBenchmarkKotlin UP-TO-DATE
> Task :app:javaPreCompileBenchmark UP-TO-DATE


Output:
Chunk ID: 14166d
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 738
Output:
> Task :app:compileBenchmarkJavaWithJavac UP-TO-DATE
> Task :app:checkBenchmarkAarMetadata UP-TO-DATE
> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :app:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:mergeBenchmarkResources UP-TO-DATE
> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksBenchmark UP-TO-DATE
> Task :app:processBenchmarkMainManifest UP-TO-DATE
> Task :app:processBenchmarkManifest UP-TO-DATE
> Task :app:processBenchmarkManifestForPackage UP-TO-DATE
> Task :app:processBenchmarkResources UP-TO-DATE
> Task :app:bundleBenchmarkClassesToCompileJar UP-TO-DATE
> Task :app:generateBenchmarkFeatureTransitiveDeps UP-TO-DATE
> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :macrobenchmark:processBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:parseBenchmarkLocalResources UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkRFile UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkKotlin UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkJavaWithJavac NO-SOURCE
> Task :macrobenchmark:mergeBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:compressBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkAarMetadata UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:processBenchmarkManifest UP-TO-DATE
> Task :macrobenchmark:processBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:dexBuilderBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :macrobenchmark:processBenchmarkJavaRes UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJavaResource UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :macrobenchmark:mergeExtDexBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeDexBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :macrobenchmark:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :macrobenchmark:packageBenchmark
> Task :macrobenchmark:createBenchmarkApkListingFileRedirect UP-TO-DATE
> Task :macrobenchmark:assembleBenchmark

[Incubating] Problems report is available at: file:///home/Messier82/projects/service-book/build/reports/problems/problems-report.html

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/9.5.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 9s
54 actionable tasks: 2 executed, 52 up-to-date
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.5.1/userguide/configuration_cache_enabling.html


The signing fix packages cleanly. I’m rerunning the actual hardware-rendered macrobenchmark GMD task now to see whether the tests execute and pass.


Output:
Chunk ID: a2887c
Wall time: 1.0013 seconds
Process running with session ID 11484
Original token count: 13
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off


Output:
Chunk ID: 7dae07
Wall time: 5.0019 seconds
Process running with session ID 11484
Original token count: 1340
Output:

> Configure project :app
WARNING: The option setting 'android.testoptions.manageddevices.emulator.gpu=host' is experimental.

> Task :macrobenchmark:preBuild UP-TO-DATE
> Task :app:preBuild UP-TO-DATE
> Task :app:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:checkTestedAppObfuscationBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:javaPreCompileBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :macrobenchmark:validateSigningBenchmark UP-TO-DATE
> Task :macrobenchmark:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:mergeBenchmarkArtProfile UP-TO-DATE
> Task :app:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :app:generateBenchmarkBuildConfig UP-TO-DATE
> Task :app:generateBenchmarkResources UP-TO-DATE
> Task :app:packageBenchmarkResources UP-TO-DATE
> Task :app:processBenchmarkNavigationResources UP-TO-DATE
> Task :app:parseBenchmarkLocalResources UP-TO-DATE
> Task :app:generateBenchmarkRFile UP-TO-DATE
> Task :app:compileBenchmarkKotlin UP-TO-DATE
> Task :app:javaPreCompileBenchmark UP-TO-DATE
> Task :app:compileBenchmarkJavaWithJavac UP-TO-DATE
> Task :app:checkBenchmarkAarMetadata UP-TO-DATE
> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :app:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:mergeBenchmarkResources UP-TO-DATE
> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksBenchmark UP-TO-DATE
> Task :app:processBenchmarkMainManifest UP-TO-DATE
> Task :app:processBenchmarkManifest UP-TO-DATE
> Task :app:processBenchmarkManifestForPackage UP-TO-DATE
> Task :app:processBenchmarkResources UP-TO-DATE
> Task :app:dexBuilderBenchmark UP-TO-DATE
> Task :app:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :app:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :app:mergeBenchmarkStartupProfile UP-TO-DATE
> Task :app:mergeExtDexBenchmark UP-TO-DATE
> Task :app:mergeDexBenchmark UP-TO-DATE
> Task :app:compileBenchmarkArtProfile UP-TO-DATE
> Task :app:generateBenchmarkAssets UP-TO-DATE
> Task :app:mergeBenchmarkAssets UP-TO-DATE
> Task :app:compressBenchmarkAssets UP-TO-DATE
> Task :app:extractBenchmarkVersionControlInfo UP-TO-DATE
> Task :app:extractProguardFiles UP-TO-DATE
> Task :app:generateBenchmarkLintVitalReportModel UP-TO-DATE
> Task :app:lintVitalAnalyzeBenchmark UP-TO-DATE
> Task :app:lintVitalReportBenchmark UP-TO-DATE
> Task :app:lintVitalBenchmark
> Task :app:processBenchmarkJavaRes UP-TO-DATE
> Task :app:mergeBenchmarkJavaResource UP-TO-DATE
> Task :app:optimizeBenchmarkResources UP-TO-DATE
> Task :app:collectBenchmarkDependencies UP-TO-DATE
> Task :app:sdkBenchmarkDependencyData UP-TO-DATE
> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :app:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :app:validateSigningBenchmark UP-TO-DATE
> Task :app:writeBenchmarkAppMetadata UP-TO-DATE
> Task :app:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:packageBenchmark UP-TO-DATE
> Task :app:createBenchmarkApkListingFileRedirect UP-TO-DATE
> Task :app:bundleBenchmarkClassesToCompileJar UP-TO-DATE
> Task :app:generateBenchmarkFeatureTransitiveDeps UP-TO-DATE
> Task :macrobenchmark:processBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:parseBenchmarkLocalResources UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkRFile UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkKotlin UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkJavaWithJavac NO-SOURCE
> Task :macrobenchmark:mergeBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:compressBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkAarMetadata UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:processBenchmarkManifest UP-TO-DATE
> Task :macrobenchmark:processBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:dexBuilderBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :macrobenchmark:processBenchmarkJavaRes UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJavaResource UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :macrobenchmark:mergeExtDexBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeDexBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :macrobenchmark:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :macrobenchmark:packageBenchmark UP-TO-DATE
> Task :macrobenchmark:createBenchmarkApkListingFileRedirect UP-TO-DATE

> Task :macrobenchmark:pixel2api33Setup
The device "pixel2api33" does not specify a "testedAbi".
This currently defaults to "x86_64", but will change to "arm64-v8a" in AGP 10.0.

The system image configured for "pixel2api33" does not support NDK translation,
so it will be unable to run tests built for "arm64-v8a".

To keep the current behavior and prevent test failures in AGP 10.0,
explicitly set the ABI: testedAbi = "x86_64"


Output:
Chunk ID: bde530
Wall time: 5.0016 seconds
Process running with session ID 11484
Original token count: 0
Output:


Output:
Chunk ID: 4a2b93
Wall time: 4.0316 seconds
Process exited with code 1
Original token count: 5159
Output:
Starting 4 tests on pixel2api33

com.yorvana.macrobenchmark.YorvanaBenchmark > M01_coldStart[pixel2api33] FAILED
	java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
	WARNINGS (suppressed): EMULATOR

com.yorvana.macrobenchmark.YorvanaBenchmark > M04_navigationGarageDetailRecord[pixel2api33] FAILED
	java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
	WARNINGS (suppressed): EMULATOR

com.yorvana.macrobenchmark.YorvanaBenchmark > M03_recordListScroll[pixel2api33] FAILED
	java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
	WARNINGS (suppressed): EMULATOR

com.yorvana.macrobenchmark.YorvanaBenchmark > M02_vehicleListScroll[pixel2api33] FAILED
	java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
	WARNINGS (suppressed): EMULATOR
Tests on pixel2api33 failed: There was 4 failure(s).
Finished 4 tests on pixel2api33
Execute com.yorvana.macrobenchmark.YorvanaBenchmark.M01_coldStart: FAILED
java.lang.AssertionError: java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
WARNINGS (suppressed): EMULATOR

ERROR: Benchmark manifest is instrumenting separate process
Macrobenchmark instrumentation target in manifest
com.yorvana does not match macrobenchmark
package com.yorvana.macrobenchmark. While macrobenchmarks 'target' a
separate app they measure, they can not declare it as their instrumentation
targetPackage in their manifest. Doing so would cause the macrobenchmark test
app to be loaded into the target application process, which would prevent
macrobenchmark from killing, compiling, or launching the target process.

Ensure your macrobenchmark test apk's manifest matches the manifest package, and
instrumentation target package, also called 'self-instrumenting':

<manifest
package="com.mymacrobenchpackage" ...>
<instrumentation
android:name="androidx.benchmark.junit4.AndroidBenchmarkRunner"
android:targetPackage="mymacrobenchpackage"/>

In gradle library modules, this is the default behavior. In gradle test modules,
specify the experimental self-instrumenting property:
android {
targetProjectPath = ":app"
// Enable the benchmark to run separately from the app process
experimentalProperties["android.experimental.self-instrumenting"] = true
}

While you can suppress these errors (turning them into warnings)
PLEASE NOTE THAT EACH SUPPRESSED ERROR COMPROMISES ACCURACY

// Sample suppression, in a benchmark module's build.gradle:
android {
defaultConfig {
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,NOT-SELF-INSTRUMENTING"
}
}
at androidx.benchmark.ConfigurationErrorKt.checkAndGetSuppressionState(ConfigurationError.kt:102)
at androidx.benchmark.macro.MacrobenchmarkKt.checkErrors(Macrobenchmark.kt:192)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:231)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M01_coldStart(YorvanaBenchmark.kt:25)

java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
WARNINGS (suppressed): EMULATOR

ERROR: Benchmark manifest is instrumenting separate process
Macrobenchmark instrumentation target in manifest
com.yorvana does not match macrobenchmark
package com.yorvana.macrobenchmark. While macrobenchmarks 'target' a
separate app they measure, they can not declare it as their instrumentation
targetPackage in their manifest. Doing so would cause the macrobenchmark test
app to be loaded into the target application process, which would prevent
macrobenchmark from killing, compiling, or launching the target process.

Ensure your macrobenchmark test apk's manifest matches the manifest package, and
instrumentation target package, also called 'self-instrumenting':

<manifest
package="com.mymacrobenchpackage" ...>
<instrumentation
android:name="androidx.benchmark.junit4.AndroidBenchmarkRunner"
android:targetPackage="mymacrobenchpackage"/>

In gradle library modules, this is the default behavior. In gradle test modules,
specify the experimental self-instrumenting property:
android {
targetProjectPath = ":app"
// Enable the benchmark to run separately from the app process
experimentalProperties["android.experimental.self-instrumenting"] = true
}

While you can suppress these errors (turning them into warnings)
PLEASE NOTE THAT EACH SUPPRESSED ERROR COMPROMISES ACCURACY

// Sample suppression, in a benchmark module's build.gradle:
android {
defaultConfig {
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,NOT-SELF-INSTRUMENTING"
}
}
at androidx.benchmark.ConfigurationErrorKt.checkAndGetSuppressionState(ConfigurationError.kt:102)
at androidx.benchmark.macro.MacrobenchmarkKt.checkErrors(Macrobenchmark.kt:192)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:231)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M01_coldStart(YorvanaBenchmark.kt:25)
Execute com.yorvana.macrobenchmark.YorvanaBenchmark.M04_navigationGarageDetailRecord: FAILED
java.lang.AssertionError: java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
WARNINGS (suppressed): EMULATOR

ERROR: Benchmark manifest is instrumenting separate process
Macrobenchmark instrumentation target in manifest
com.yorvana does not match macrobenchmark
package com.yorvana.macrobenchmark. While macrobenchmarks 'target' a
separate app they measure, they can not declare it as their instrumentation
targetPackage in their manifest. Doing so would cause the macrobenchmark test
app to be loaded into the target application process, which would prevent
macrobenchmark from killing, compiling, or launching the target process.

Ensure your macrobenchmark test apk's manifest matches the manifest package, and
instrumentation target package, also called 'self-instrumenting':

<manifest
package="com.mymacrobenchpackage" ...>
<instrumentation
android:name="androidx.benchmark.junit4.AndroidBenchmarkRunner"
android:targetPackage="mymacrobenchpackage"/>

In gradle library modules, this is the default behavior. In gradle test modules,
specify the experimental self-instrumenting property:
android {
targetProjectPath = ":app"
// Enable the benchmark to run separately from the app process
experimentalProperties["android.experimental.self-instrumenting"] = true
}

While you can suppress these errors (turning them into warnings)
PLEASE NOTE THAT EACH SUPPRESSED ERROR COMPROMISES ACCURACY

// Sample suppression, in a benchmark module's build.gradle:
android {
defaultConfig {
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,NOT-SELF-INSTRUMENTING"
}
}
at androidx.benchmark.ConfigurationErrorKt.checkAndGetSuppressionState(ConfigurationError.kt:102)
at androidx.benchmark.macro.MacrobenchmarkKt.checkErrors(Macrobenchmark.kt:192)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:231)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M04_navigationGarageDetailRecord(YorvanaBenchmark.kt:82)

java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
WARNINGS (suppressed): EMULATOR

ERROR: Benchmark manifest is instrumenting separate process
Macrobenchmark instrumentation target in manifest
com.yorvana does not match macrobenchmark
package com.yorvana.macrobenchmark. While macrobenchmarks 'target' a
separate app they measure, they can not declare it as their instrumentation
targetPackage in their manifest. Doing so would cause the macrobenchmark test
app to be loaded into the target application process, which would prevent
macrobenchmark from killing, compiling, or launching the target process.

Ensure your macrobenchmark test apk's manifest matches the manifest package, and
instrumentation target package, also called 'self-instrumenting':

<manifest
package="com.mymacrobenchpackage" ...>
<instrumentation
android:name="androidx.benchmark.junit4.AndroidBenchmarkRunner"
android:targetPackage="mymacrobenchpackage"/>

In gradle library modules, this is the default behavior. In gradle test modules,
specify the experimental self-instrumenting property:
android {
targetProjectPath = ":app"
// Enable the benchmark to run separately from the app process
experimentalProperties["android.experimental.self-instrumenting"] = true
}

While you can suppress these errors (turning them into warnings)
PLEASE NOTE THAT EACH SUPPRESSED ERROR COMPROMISES ACCURACY

// Sample suppression, in a benchmark module's build.gradle:
android {
defaultConfig {
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,NOT-SELF-INSTRUMENTING"
}
}
at androidx.benchmark.ConfigurationErrorKt.checkAndGetSuppressionState(ConfigurationError.kt:102)
at androidx.benchmark.macro.MacrobenchmarkKt.checkErrors(Macrobenchmark.kt:192)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:231)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M04_navigationGarageDetailRecord(YorvanaBenchmark.kt:82)
Execute com.yorvana.macrobenchmark.YorvanaBenchmark.M03_recordListScroll: FAILED
java.lang.AssertionError: java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
WARNINGS (suppressed): EMULATOR

ERROR: Benchmark manifest is instrumenting separate process
Macrobenchmark instrumentation target in manifest
com.yorvana does not match macrobenchmark
package com.yorvana.macrobenchmark. While macrobenchmarks 'target' a
separate app they measure, they can not declare it as their instrumentation
targetPackage in their manifest. Doing so would cause the macrobenchmark test
app to be loaded into the target application process, which would prevent
macrobenchmark from killing, compiling, or launching the target process.

Ensure your macrobenchmark test apk's manifest matches the manifest package, and
instrumentation target package, also called 'self-instrumenting':

<manifest
package="com.mymacrobenchpackage" ...>
<instrumentation
android:name="androidx.benchmark.junit4.AndroidBenchmarkRunner"
android:targetPackage="mymacrobenchpackage"/>

In gradle library modules, this is the default behavior. In gradle test modules,
specify the experimental self-instrumenting property:
android {
targetProjectPath = ":app"
// Enable the benchmark to run separately from the app process
experimentalProperties["android.experimental.self-instrumenting"] = true
}

While you can suppress these errors (turning them into warnings)
PLEASE NOTE THAT EACH SUPPRESSED ERROR COMPROMISES ACCURACY

// Sample suppression, in a benchmark module's build.gradle:
android {
defaultConfig {
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,NOT-SELF-INSTRUMENTING"
}
}
at androidx.benchmark.ConfigurationErrorKt.checkAndGetSuppressionState(ConfigurationError.kt:102)
at androidx.benchmark.macro.MacrobenchmarkKt.checkErrors(Macrobenchmark.kt:192)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:231)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M03_recordListScroll(YorvanaBenchmark.kt:61)

java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
WARNINGS (suppressed): EMULATOR

ERROR: Benchmark manifest is instrumenting separate process
Macrobenchmark instrumentation target in manifest
com.yorvana does not match macrobenchmark
package com.yorvana.macrobenchmark. While macrobenchmarks 'target' a
separate app they measure, they can not declare it as their instrumentation
targetPackage in their manifest. Doing so would cause the macrobenchmark test
app to be loaded into the target application process, which would prevent
macrobenchmark from killing, compiling, or launching the target process.

Ensure your macrobenchmark test apk's manifest matches the manifest package, and
instrumentation target package, also called 'self-instrumenting':

<manifest
package="com.mymacrobenchpackage" ...>
<instrumentation
android:name="androidx.benchmark.junit4.AndroidBenchmarkRunner"
android:targetPackage="mymacrobenchpackage"/>

In gradle library modules, this is the default behavior. In gradle test modules,
specify the experimental self-instrumenting property:
android {
targetProjectPath = ":app"
// Enable the benchmark to run separately from the app process
experimentalProperties["android.experimental.self-instrumenting"] = true
}

While you can suppress these errors (turning them into warnings)
PLEASE NOTE THAT EACH SUPPRESSED ERROR COMPROMISES ACCURACY

// Sample suppression, in a benchmark module's build.gradle:
android {
defaultConfig {
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,NOT-SELF-INSTRUMENTING"
}
}
at androidx.benchmark.ConfigurationErrorKt.checkAndGetSuppressionState(ConfigurationError.kt:102)
at androidx.benchmark.macro.MacrobenchmarkKt.checkErrors(Macrobenchmark.kt:192)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:231)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M03_recordListScroll(YorvanaBenchmark.kt:61)
Execute com.yorvana.macrobenchmark.YorvanaBenchmark.M02_vehicleListScroll: FAILED
java.lang.AssertionError: java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
WARNINGS (suppressed): EMULATOR

ERROR: Benchmark manifest is instrumenting separate process
Macrobenchmark instrumentation target in manifest
com.yorvana does not match macrobenchmark
package com.yorvana.macrobenchmark. While macrobenchmarks 'target' a
separate app they measure, they can not declare it as their instrumentation
targetPackage in their manifest. Doing so would cause the macrobenchmark test
app to be loaded into the target application process, which would prevent
macrobenchmark from killing, compiling, or launching the target process.

Ensure your macrobenchmark test apk's manifest matches the manifest package, and
instrumentation target package, also called 'self-instrumenting':

<manifest
package="com.mymacrobenchpackage" ...>
<instrumentation
android:name="androidx.benchmark.junit4.AndroidBenchmarkRunner"
android:targetPackage="mymacrobenchpackage"/>

In gradle library modules, this is the default behavior. In gradle test modules,
specify the experimental self-instrumenting property:
android {
targetProjectPath = ":app"
// Enable the benchmark to run separately from the app process
experimentalProperties["android.experimental.self-instrumenting"] = true
}

While you can suppress these errors (turning them into warnings)
PLEASE NOTE THAT EACH SUPPRESSED ERROR COMPROMISES ACCURACY

// Sample suppression, in a benchmark module's build.gradle:
android {
defaultConfig {
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,NOT-SELF-INSTRUMENTING"
}
}
at androidx.benchmark.ConfigurationErrorKt.checkAndGetSuppressionState(ConfigurationError.kt:102)
at androidx.benchmark.macro.MacrobenchmarkKt.checkErrors(Macrobenchmark.kt:192)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:231)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M02_vehicleListScroll(YorvanaBenchmark.kt:41)

java.lang.AssertionError: ERRORS (not suppressed): NOT-SELF-INSTRUMENTING
WARNINGS (suppressed): EMULATOR

ERROR: Benchmark manifest is instrumenting separate process
Macrobenchmark instrumentation target in manifest
com.yorvana does not match macrobenchmark
package com.yorvana.macrobenchmark. While macrobenchmarks 'target' a
separate app they measure, they can not declare it as their instrumentation
targetPackage in their manifest. Doing so would cause the macrobenchmark test
app to be loaded into the target application process, which would prevent
macrobenchmark from killing, compiling, or launching the target process.

Ensure your macrobenchmark test apk's manifest matches the manifest package, and
instrumentation target package, also called 'self-instrumenting':

<manifest
package="com.mymacrobenchpackage" ...>
<instrumentation
android:name="androidx.benchmark.junit4.AndroidBenchmarkRunner"
android:targetPackage="mymacrobenchpackage"/>

In gradle library modules, this is the default behavior. In gradle test modules,
specify the experimental self-instrumenting property:
android {
targetProjectPath = ":app"
// Enable the benchmark to run separately from the app process
experimentalProperties["android.experimental.self-instrumenting"] = true
}

While you can suppress these errors (turning them into warnings)
PLEASE NOTE THAT EACH SUPPRESSED ERROR COMPROMISES ACCURACY

// Sample suppression, in a benchmark module's build.gradle:
android {
defaultConfig {
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,NOT-SELF-INSTRUMENTING"
}
}
at androidx.benchmark.ConfigurationErrorKt.checkAndGetSuppressionState(ConfigurationError.kt:102)
at androidx.benchmark.macro.MacrobenchmarkKt.checkErrors(Macrobenchmark.kt:192)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:231)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M02_vehicleListScroll(YorvanaBenchmark.kt:41)

> Task :macrobenchmark:pixel2api33BenchmarkAndroidTest FAILED

> Task :macrobenchmark:mergeBenchmarkTestResultProtos
Test execution completed. See the report at: file:///home/Messier82/projects/service-book/macrobenchmark/build/reports/androidTests/managedDevice/benchmark/allDevices/index.html

[Incubating] Problems report is available at: file:///home/Messier82/projects/service-book/build/reports/problems/problems-report.html

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':macrobenchmark:pixel2api33BenchmarkAndroidTest' (registered by plugin 'com.android.internal.test').
> There were failing tests. See the report at: file:///home/Messier82/projects/service-book/macrobenchmark/build/reports/androidTests/managedDevice/benchmark/pixel2api33/index.html

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/9.5.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 23s
85 actionable tasks: 4 executed, 81 up-to-date


The tests now install and execute, but all four fail on Macrobenchmark’s configuration guard: the test module is not self-instrumenting. I’m applying the AGP property the benchmark library asks for instead of suppressing that error.


Input:
*** Begin Patch
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/build.gradle.kts
@@
     namespace = "com.yorvana.macrobenchmark"
     compileSdk = 36
     targetProjectPath = ":app"
+    experimentalProperties["android.experimental.self-instrumenting"] = true

     defaultConfig {
         minSdk = 26
         targetSdk = 36
-        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+        testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
         testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR"
     }
*** End Patch


@@ -8,2 +8,3 @@
     targetProjectPath = ":app"
+    experimentalProperties["android.experimental.self-instrumenting"] = true

@@ -12,3 +13,3 @@
         targetSdk = 36
-        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+        testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
         testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR"


Output:
Exit code: 0
Wall time: 0.8 seconds
Output:
Success. Updated the following files:
M /home/Messier82/projects/service-book/macrobenchmark/build.gradle.kts


Output:
Chunk ID: 52242e
Wall time: 1.0011 seconds
Process running with session ID 78606
Original token count: 13
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off


Output:
Chunk ID: 5d2b8d
Wall time: 5.0006 seconds
Process running with session ID 78606
Original token count: 1234
Output:

> Configure project :app
WARNING: The option setting 'android.testoptions.manageddevices.emulator.gpu=host' is experimental.

> Task :app:preBuild UP-TO-DATE
> Task :macrobenchmark:preBuild UP-TO-DATE
> Task :app:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:checkTestedAppObfuscationBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:processBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:parseBenchmarkLocalResources UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkRFile UP-TO-DATE
> Task :app:mergeBenchmarkArtProfile UP-TO-DATE
> Task :app:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :app:generateBenchmarkBuildConfig UP-TO-DATE
> Task :app:generateBenchmarkResources UP-TO-DATE
> Task :app:packageBenchmarkResources UP-TO-DATE
> Task :app:processBenchmarkNavigationResources UP-TO-DATE
> Task :app:parseBenchmarkLocalResources UP-TO-DATE
> Task :app:generateBenchmarkRFile UP-TO-DATE
> Task :app:compileBenchmarkKotlin UP-TO-DATE
> Task :app:javaPreCompileBenchmark UP-TO-DATE
> Task :app:compileBenchmarkJavaWithJavac UP-TO-DATE
> Task :app:checkBenchmarkAarMetadata UP-TO-DATE
> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :app:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:mergeBenchmarkResources UP-TO-DATE
> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksBenchmark UP-TO-DATE
> Task :app:processBenchmarkMainManifest UP-TO-DATE
> Task :app:processBenchmarkManifest UP-TO-DATE
> Task :app:processBenchmarkManifestForPackage UP-TO-DATE
> Task :app:processBenchmarkResources UP-TO-DATE
> Task :app:dexBuilderBenchmark UP-TO-DATE
> Task :app:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :app:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :app:mergeBenchmarkStartupProfile UP-TO-DATE
> Task :app:mergeExtDexBenchmark UP-TO-DATE
> Task :app:mergeDexBenchmark UP-TO-DATE
> Task :app:compileBenchmarkArtProfile UP-TO-DATE
> Task :app:generateBenchmarkAssets UP-TO-DATE
> Task :app:mergeBenchmarkAssets UP-TO-DATE
> Task :app:compressBenchmarkAssets UP-TO-DATE
> Task :app:extractBenchmarkVersionControlInfo UP-TO-DATE
> Task :app:extractProguardFiles UP-TO-DATE
> Task :app:generateBenchmarkLintVitalReportModel UP-TO-DATE
> Task :macrobenchmark:javaPreCompileBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:compressBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :macrobenchmark:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:lintVitalAnalyzeBenchmark UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkAarMetadata
> Task :app:lintVitalReportBenchmark UP-TO-DATE
> Task :app:lintVitalBenchmark
> Task :macrobenchmark:mergeBenchmarkResources UP-TO-DATE
> Task :app:processBenchmarkJavaRes UP-TO-DATE
> Task :app:mergeBenchmarkJavaResource UP-TO-DATE
> Task :app:optimizeBenchmarkResources UP-TO-DATE
> Task :app:collectBenchmarkDependencies UP-TO-DATE
> Task :app:sdkBenchmarkDependencyData UP-TO-DATE
> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :app:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :app:validateSigningBenchmark UP-TO-DATE
> Task :app:writeBenchmarkAppMetadata UP-TO-DATE
> Task :app:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:packageBenchmark UP-TO-DATE
> Task :app:createBenchmarkApkListingFileRedirect UP-TO-DATE
> Task :macrobenchmark:processBenchmarkManifest
> Task :macrobenchmark:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :macrobenchmark:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :macrobenchmark:validateSigningBenchmark UP-TO-DATE
> Task :macrobenchmark:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkDuplicateClasses
> Task :macrobenchmark:processBenchmarkResources

> Task :macrobenchmark:pixel2api33Setup
The device "pixel2api33" does not specify a "testedAbi".
This currently defaults to "x86_64", but will change to "arm64-v8a" in AGP 10.0.

The system image configured for "pixel2api33" does not support NDK translation,
so it will be unable to run tests built for "arm64-v8a".

To keep the current behavior and prevent test failures in AGP 10.0,
explicitly set the ABI: testedAbi = "x86_64"

> Task :macrobenchmark:compileBenchmarkKotlin
> Task :macrobenchmark:compileBenchmarkJavaWithJavac NO-SOURCE
> Task :macrobenchmark:dexBuilderBenchmark
> Task :macrobenchmark:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :macrobenchmark:processBenchmarkJavaRes UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJavaResource


Output:
Chunk ID: d82a52
Wall time: 5.0012 seconds
Process running with session ID 78606
Original token count: 50
Output:
> Task :macrobenchmark:mergeExtDexBenchmark
> Task :macrobenchmark:mergeDexBenchmark
> Task :macrobenchmark:packageBenchmark
> Task :macrobenchmark:createBenchmarkApkListingFileRedirect UP-TO-DATE


Output:
Chunk ID: 3983af
Wall time: 5.0003 seconds
Process running with session ID 78606
Original token count: 0
Output:


Output:
Chunk ID: c4a5f5
Wall time: 1.4234 seconds
Process exited with code 1
Original token count: 1152
Output:
Starting 0 tests on pixel2api33
Finished 0 tests on pixel2api33

> Task :macrobenchmark:pixel2api33BenchmarkAndroidTest FAILED
Test run failed to complete. Instrumentation run failed due to Process crashed.
Logcat of last crash:
Process: com.yorvana.macrobenchmark, PID: 2034
java.lang.RuntimeException: Unable to instantiate instrumentation ComponentInfo{com.yorvana.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner}: java.lang.ClassNotFoundException: Didn't find class "androidx.benchmark.junit4.AndroidBenchmarkRunner" on path: DexPathList[[zip file "/data/app/~~zcqnwUDic7wsP22FrQ__5g==/com.yorvana.macrobenchmark-mLHIVdYi-Oz15wQqk3L5Nw==/base.apk"],nativeLibraryDirectories=[/data/app/~~zcqnwUDic7wsP22FrQ__5g==/com.yorvana.macrobenchmark-mLHIVdYi-Oz15wQqk3L5Nw==/lib/x86_64, /data/app/~~zcqnwUDic7wsP22FrQ__5g==/com.yorvana.macrobenchmark-mLHIVdYi-Oz15wQqk3L5Nw==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]]
	at android.app.ActivityThread.initInstrumentation(ActivityThread.java:6913)
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
	at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2133)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7872)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.benchmark.junit4.AndroidBenchmarkRunner" on path: DexPathList[[zip file "/data/app/~~zcqnwUDic7wsP22FrQ__5g==/com.yorvana.macrobenchmark-mLHIVdYi-Oz15wQqk3L5Nw==/base.apk"],nativeLibraryDirectories=[/data/app/~~zcqnwUDic7wsP22FrQ__5g==/com.yorvana.macrobenchmark-mLHIVdYi-Oz15wQqk3L5Nw==/lib/x86_64, /data/app/~~zcqnwUDic7wsP22FrQ__5g==/com.yorvana.macrobenchmark-mLHIVdYi-Oz15wQqk3L5Nw==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
	at android.app.ActivityThread.initInstrumentation(ActivityThread.java:6909)
	... 10 more

> Task :macrobenchmark:mergeBenchmarkTestResultProtos FAILED

[Incubating] Problems report is available at: file:///home/Messier82/projects/service-book/build/reports/problems/problems-report.html

FAILURE: Build completed with 2 failures.

1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':macrobenchmark:pixel2api33BenchmarkAndroidTest' (registered by plugin 'com.android.internal.test').
> Could not load test results from '/home/Messier82/projects/service-book/macrobenchmark/build/outputs/androidTest-results/managedDevice/benchmark/pixel2api33/TEST-pixel2api33-_macrobenchmark-.xml'.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.
==============================================================================

2: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':macrobenchmark:mergeBenchmarkTestResultProtos' (registered by plugin 'com.android.internal.test').
> Could not load test results from '/home/Messier82/projects/service-book/macrobenchmark/build/outputs/androidTest-results/managedDevice/benchmark/pixel2api33/TEST-pixel2api33-_macrobenchmark-.xml'.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.
==============================================================================

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/9.5.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 32s
83 actionable tasks: 14 executed, 69 up-to-date


That runner class is not packaged by the macrobenchmark dependency version in use. I’m reverting the runner to `AndroidJUnitRunner` and keeping the actual required fix, the self-instrumenting property.


Input:
*** Begin Patch
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/build.gradle.kts
@@
-        testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
+        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
*** End Patch


@@ -13,3 +13,3 @@
         targetSdk = 36
-        testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
+        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
         testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR"


Output:
Exit code: 0
Wall time: 0.8 seconds
Output:
Success. Updated the following files:
M /home/Messier82/projects/service-book/macrobenchmark/build.gradle.kts


Output:
Chunk ID: c9143c
Wall time: 1.0006 seconds
Process running with session ID 21507
Original token count: 13
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off


Output:
Chunk ID: 955e68
Wall time: 5.0009 seconds
Process running with session ID 21507
Original token count: 1302
Output:

> Configure project :app
WARNING: The option setting 'android.testoptions.manageddevices.emulator.gpu=host' is experimental.

> Task :app:preBuild UP-TO-DATE
> Task :macrobenchmark:preBuild UP-TO-DATE
> Task :app:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:checkTestedAppObfuscationBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:processBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:parseBenchmarkLocalResources UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkRFile UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkKotlin UP-TO-DATE
> Task :macrobenchmark:javaPreCompileBenchmark UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkJavaWithJavac NO-SOURCE
> Task :macrobenchmark:generateBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:compressBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkAarMetadata UP-TO-DATE
> Task :macrobenchmark:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:processBenchmarkManifest
> Task :app:mergeBenchmarkArtProfile UP-TO-DATE
> Task :app:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :app:generateBenchmarkBuildConfig UP-TO-DATE
> Task :app:generateBenchmarkResources UP-TO-DATE
> Task :app:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:processBenchmarkJavaRes UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJavaResource UP-TO-DATE
> Task :app:processBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :app:parseBenchmarkLocalResources UP-TO-DATE
> Task :app:generateBenchmarkRFile UP-TO-DATE
> Task :macrobenchmark:mergeExtDexBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :macrobenchmark:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :macrobenchmark:validateSigningBenchmark UP-TO-DATE
> Task :macrobenchmark:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:compileBenchmarkKotlin UP-TO-DATE
> Task :app:javaPreCompileBenchmark UP-TO-DATE
> Task :app:compileBenchmarkJavaWithJavac UP-TO-DATE
> Task :app:checkBenchmarkAarMetadata UP-TO-DATE
> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :app:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:mergeBenchmarkResources UP-TO-DATE
> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksBenchmark UP-TO-DATE
> Task :app:processBenchmarkMainManifest UP-TO-DATE
> Task :app:processBenchmarkManifest UP-TO-DATE
> Task :app:processBenchmarkManifestForPackage UP-TO-DATE
> Task :app:processBenchmarkResources UP-TO-DATE
> Task :app:dexBuilderBenchmark UP-TO-DATE
> Task :app:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :app:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :app:mergeBenchmarkStartupProfile UP-TO-DATE
> Task :app:mergeExtDexBenchmark UP-TO-DATE
> Task :app:mergeDexBenchmark UP-TO-DATE
> Task :app:compileBenchmarkArtProfile UP-TO-DATE
> Task :app:generateBenchmarkAssets UP-TO-DATE
> Task :app:mergeBenchmarkAssets UP-TO-DATE
> Task :app:compressBenchmarkAssets UP-TO-DATE
> Task :app:extractBenchmarkVersionControlInfo UP-TO-DATE
> Task :app:extractProguardFiles UP-TO-DATE
> Task :app:generateBenchmarkLintVitalReportModel UP-TO-DATE
> Task :app:lintVitalAnalyzeBenchmark UP-TO-DATE
> Task :app:lintVitalReportBenchmark UP-TO-DATE
> Task :app:lintVitalBenchmark
> Task :app:processBenchmarkJavaRes UP-TO-DATE
> Task :macrobenchmark:processBenchmarkResources
> Task :app:mergeBenchmarkJavaResource UP-TO-DATE
> Task :macrobenchmark:dexBuilderBenchmark UP-TO-DATE
> Task :app:optimizeBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :macrobenchmark:mergeDexBenchmark UP-TO-DATE
> Task :app:collectBenchmarkDependencies UP-TO-DATE
> Task :app:sdkBenchmarkDependencyData UP-TO-DATE
> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :app:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :app:validateSigningBenchmark UP-TO-DATE
> Task :app:writeBenchmarkAppMetadata UP-TO-DATE
> Task :app:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:packageBenchmark UP-TO-DATE
> Task :app:createBenchmarkApkListingFileRedirect UP-TO-DATE
> Task :macrobenchmark:packageBenchmark
> Task :macrobenchmark:createBenchmarkApkListingFileRedirect UP-TO-DATE

> Task :macrobenchmark:pixel2api33Setup
The device "pixel2api33" does not specify a "testedAbi".
This currently defaults to "x86_64", but will change to "arm64-v8a" in AGP 10.0.

The system image configured for "pixel2api33" does not support NDK translation,
so it will be unable to run tests built for "arm64-v8a".

To keep the current behavior and prevent test failures in AGP 10.0,
explicitly set the ABI: testedAbi = "x86_64"


Output:
Chunk ID: 8280a1
Wall time: 5.0011 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 569b4a
Wall time: 5.0012 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: d5f082
Wall time: 5.0008 seconds
Process running with session ID 21507
Original token count: 8
Output:
Starting 4 tests on pixel2api33


The self-instrumenting fix took; the task is now running the four benchmark tests instead of failing configuration immediately.


Output:
Chunk ID: d6e9fd
Wall time: 5.0015 seconds
Process running with session ID 21507
Original token count: 29
Output:

> Task :macrobenchmark:pixel2api33BenchmarkAndroidTest

pixel2api33 Tests 0/4 completed. (0 skipped) (0 failed)


Output:
Chunk ID: ef4a3c
Wall time: 5.0013 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 3d1f78
Wall time: 5.0008 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 02ead9
Wall time: 5.0006 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 241bf8
Wall time: 5.0019 seconds
Process running with session ID 21507
Original token count: 76
Output:

com.yorvana.macrobenchmark.YorvanaBenchmark > M01_coldStart[pixel2api33] FAILED
	java.lang.IllegalStateException: Timed out waiting for VehicleList
	at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)
pixel2api33 Tests 1/4 completed. (0 skipped) (1 failed)


One benchmark failed for a real test issue now: M01 cold start didn’t seed setup-complete app state, so it timed out waiting for the garage list. I’m fixing M01 to seed the deterministic vault before measuring cold start.


Output:
Chunk ID: d5fd16
Wall time: 5.0009 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 9c84c1
Wall time: 5.0011 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: f3f7e3
Wall time: 5.0007 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 795f2d
Wall time: 5.0008 seconds
Process running with session ID 21507
Original token count: 72
Output:

com.yorvana.macrobenchmark.YorvanaBenchmark > M04_navigationGarageDetailRecord[pixel2api33] FAILED
	java.lang.IllegalStateException: Timed out waiting for VehicleItem_benchmark-vehicle-001
	at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)


Output:
Chunk ID: 573adc
Wall time: 5.0009 seconds
Process running with session ID 21507
Original token count: 14
Output:
pixel2api33 Tests 2/4 completed. (0 skipped) (2 failed)


Output:
Chunk ID: a0b6bf
Wall time: 5.0010 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: e62627
Wall time: 5.0009 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: ebab0f
Wall time: 5.0019 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 1ae3bc
Wall time: 5.0009 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: ee5e23
Wall time: 5.0012 seconds
Process running with session ID 21507
Original token count: 83
Output:

com.yorvana.macrobenchmark.YorvanaBenchmark > M03_recordListScroll[pixel2api33] FAILED
	java.lang.IllegalStateException: Timed out waiting for VehicleItem_benchmark-vehicle-001
	at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)
pixel2api33 Tests 3/4 completed. (0 skipped) (3 failed)


Output:
Chunk ID: 474d30
Wall time: 5.0013 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: e095c5
Wall time: 5.0010 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 4e103b
Wall time: 5.0012 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 1091e3
Wall time: 5.0007 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 3a0ffa
Wall time: 5.0007 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 058b40
Wall time: 5.0010 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: b0c54a
Wall time: 5.0011 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: f5e91d
Wall time: 5.0010 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 1fa335
Wall time: 5.0012 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 661efd
Wall time: 5.0013 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 176638
Wall time: 5.0016 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: f53299
Wall time: 5.0009 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: 00c836
Wall time: 5.0004 seconds
Process running with session ID 21507
Original token count: 0
Output:


Output:
Chunk ID: f68a77
Wall time: 0.0001 seconds
Process exited with code 1
Original token count: 2997
Output:
pixel2api33 Tests 4/4 completed. (0 skipped) (3 failed)
Tests on pixel2api33 failed: There was 3 failure(s).
Finished 4 tests on pixel2api33
Execute com.yorvana.macrobenchmark.YorvanaBenchmark.M01_coldStart: FAILED
java.lang.IllegalStateException: java.lang.IllegalStateException: Timed out waiting for VehicleList
at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M01_coldStart$lambda$1(YorvanaBenchmark.kt:36)
at com.yorvana.macrobenchmark.YorvanaBenchmark$$ExternalSyntheticLambda7.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase$lambda$18$lambda$12(MacrobenchmarkPhase.kt:142)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.perfetto.PerfettoCaptureWrapper.record(PerfettoCaptureWrapper.kt:157)
at androidx.benchmark.perfetto.PerfettoCaptureWrapper.record$default(PerfettoCaptureWrapper.kt:113)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase(MacrobenchmarkPhase.kt:108)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark$lambda$6(Macrobenchmark.kt:271)
at androidx.benchmark.macro.MacrobenchmarkKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer(TraceProcessorExtensions.kt:163)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer$default(TraceProcessorExtensions.kt:158)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:263)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M01_coldStart(YorvanaBenchmark.kt:25)

java.lang.IllegalStateException: Timed out waiting for VehicleList
at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M01_coldStart$lambda$1(YorvanaBenchmark.kt:36)
at com.yorvana.macrobenchmark.YorvanaBenchmark$$ExternalSyntheticLambda7.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase$lambda$18$lambda$12(MacrobenchmarkPhase.kt:142)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.perfetto.PerfettoCaptureWrapper.record(PerfettoCaptureWrapper.kt:157)
at androidx.benchmark.perfetto.PerfettoCaptureWrapper.record$default(PerfettoCaptureWrapper.kt:113)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase(MacrobenchmarkPhase.kt:108)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark$lambda$6(Macrobenchmark.kt:271)
at androidx.benchmark.macro.MacrobenchmarkKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer(TraceProcessorExtensions.kt:163)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer$default(TraceProcessorExtensions.kt:158)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:263)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M01_coldStart(YorvanaBenchmark.kt:25)
Execute com.yorvana.macrobenchmark.YorvanaBenchmark.M04_navigationGarageDetailRecord: FAILED
java.lang.IllegalStateException: java.lang.IllegalStateException: Timed out waiting for VehicleItem_benchmark-vehicle-001
at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M04_navigationGarageDetailRecord$lambda$1(YorvanaBenchmark.kt:91)
at com.yorvana.macrobenchmark.YorvanaBenchmark$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase$lambda$18$lambda$12(MacrobenchmarkPhase.kt:142)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.perfetto.PerfettoCaptureWrapper.record(PerfettoCaptureWrapper.kt:157)
at androidx.benchmark.perfetto.PerfettoCaptureWrapper.record$default(PerfettoCaptureWrapper.kt:113)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase(MacrobenchmarkPhase.kt:108)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark$lambda$6(Macrobenchmark.kt:271)
at androidx.benchmark.macro.MacrobenchmarkKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer(TraceProcessorExtensions.kt:163)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer$default(TraceProcessorExtensions.kt:158)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:263)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M04_navigationGarageDetailRecord(YorvanaBenchmark.kt:82)

java.lang.IllegalStateException: Timed out waiting for VehicleItem_benchmark-vehicle-001
at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M04_navigationGarageDetailRecord$lambda$1(YorvanaBenchmark.kt:91)
at com.yorvana.macrobenchmark.YorvanaBenchmark$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase$lambda$18$lambda$12(MacrobenchmarkPhase.kt:142)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.perfetto.PerfettoCaptureWrapper.record(PerfettoCaptureWrapper.kt:157)
at androidx.benchmark.perfetto.PerfettoCaptureWrapper.record$default(PerfettoCaptureWrapper.kt:113)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase(MacrobenchmarkPhase.kt:108)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark$lambda$6(Macrobenchmark.kt:271)
at androidx.benchmark.macro.MacrobenchmarkKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer(TraceProcessorExtensions.kt:163)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer$default(TraceProcessorExtensions.kt:158)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:263)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M04_navigationGarageDetailRecord(YorvanaBenchmark.kt:82)
Execute com.yorvana.macrobenchmark.YorvanaBenchmark.M03_recordListScroll: FAILED
java.lang.IllegalStateException: java.lang.IllegalStateException: Timed out waiting for VehicleItem_benchmark-vehicle-001
at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)
at com.yorvana.macrobenchmark.YorvanaBenchmark.openRecordVehicle(YorvanaBenchmark.kt:111)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M03_recordListScroll$lambda$0(YorvanaBenchmark.kt:68)
at com.yorvana.macrobenchmark.YorvanaBenchmark$$ExternalSyntheticLambda2.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode$lambda$18(Macrobenchmark.kt:443)
at androidx.benchmark.macro.MacrobenchmarkKt$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase(MacrobenchmarkPhase.kt:99)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark$lambda$6(Macrobenchmark.kt:271)
at androidx.benchmark.macro.MacrobenchmarkKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer(TraceProcessorExtensions.kt:163)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer$default(TraceProcessorExtensions.kt:158)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:263)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M03_recordListScroll(YorvanaBenchmark.kt:61)

java.lang.IllegalStateException: Timed out waiting for VehicleItem_benchmark-vehicle-001
at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:116)
at com.yorvana.macrobenchmark.YorvanaBenchmark.openRecordVehicle(YorvanaBenchmark.kt:111)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M03_recordListScroll$lambda$0(YorvanaBenchmark.kt:68)
at com.yorvana.macrobenchmark.YorvanaBenchmark$$ExternalSyntheticLambda2.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode$lambda$18(Macrobenchmark.kt:443)
at androidx.benchmark.macro.MacrobenchmarkKt$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.MacrobenchmarkPhaseKt.runPhase(MacrobenchmarkPhase.kt:99)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark$lambda$6(Macrobenchmark.kt:271)
at androidx.benchmark.macro.MacrobenchmarkKt$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer(TraceProcessorExtensions.kt:163)
at androidx.benchmark.macro.TraceProcessorExtensionsKt.runServer$default(TraceProcessorExtensions.kt:158)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmark(Macrobenchmark.kt:263)
at androidx.benchmark.macro.MacrobenchmarkKt.macrobenchmarkWithStartupMode(Macrobenchmark.kt:400)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated(MacrobenchmarkRule.kt:87)
at androidx.benchmark.macro.junit4.MacrobenchmarkRule.measureRepeated$default(MacrobenchmarkRule.kt:77)
at com.yorvana.macrobenchmark.YorvanaBenchmark.M03_recordListScroll(YorvanaBenchmark.kt:61)

> Task :macrobenchmark:pixel2api33BenchmarkAndroidTest FAILED

> Task :macrobenchmark:mergeBenchmarkTestResultProtos
Test execution completed. See the report at: file:///home/Messier82/projects/service-book/macrobenchmark/build/reports/androidTests/managedDevice/benchmark/allDevices/index.html

[Incubating] Problems report is available at: file:///home/Messier82/projects/service-book/build/reports/problems/problems-report.html

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':macrobenchmark:pixel2api33BenchmarkAndroidTest' (registered by plugin 'com.android.internal.test').
> There were failing tests. See the report at: file:///home/Messier82/projects/service-book/macrobenchmark/build/reports/androidTests/managedDevice/benchmark/pixel2api33/index.html

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/9.5.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 4m 45s
83 actionable tasks: 7 executed, 76 up-to-date


Current result: M02 passed, M01/M03/M04 failed from selector/setup mistakes. I’m patching those now: seed cold-start state before measuring and use the actual 200-record fixture vehicle tag.


Input:
*** Begin Patch
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/BenchmarkFixtures.kt
@@
     fun vehicleItem(ordinal: Int): String = "VehicleItem_benchmark-vehicle-${ordinal.toString().padStart(3, '0')}"

+    fun recordVehicleItem(): String = "VehicleItem_$RECORD_VEHICLE_ID"
+
     fun recordItem(ordinal: Int): String = "RecordItem_benchmark-record-${ordinal.toString().padStart(3, '0')}"
 }
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt
@@
             iterations = ITERATIONS,
             startupMode = StartupMode.COLD,
             setupBlock = {
+                seedVault(BenchmarkFixtures.LARGE_20_VEHICLES)
                 pressHome()
             },
@@
-            device.waitForObject(BenchmarkFixtures.vehicleItem(1)).click()
+            device.waitForObject(BenchmarkFixtures.recordVehicleItem()).click()
@@
-        device.waitForObject(BenchmarkFixtures.vehicleItem(1)).click()
+        device.waitForObject(BenchmarkFixtures.recordVehicleItem()).click()
*** End Patch


Success. Updated the following files:
M /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/BenchmarkFixtures.kt
M /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt

@@ -12,2 +12,4 @@

+    fun recordVehicleItem(): String = "VehicleItem_$RECORD_VEHICLE_ID"
+
     fun recordItem(ordinal: Int): String = "RecordItem_benchmark-record-${ordinal.toString().padStart(3, '0')}"

@@ -31,2 +31,3 @@
             setupBlock = {
+                seedVault(BenchmarkFixtures.LARGE_20_VEHICLES)
                 pressHome()
@@ -90,3 +91,3 @@
         ) {
-            device.waitForObject(BenchmarkFixtures.vehicleItem(1)).click()
+            device.waitForObject(BenchmarkFixtures.recordVehicleItem()).click()
             device.waitForObject(BenchmarkTags.RECORD_LIST)
@@ -110,3 +111,3 @@
     private fun MacrobenchmarkScope.openRecordVehicle() {
-        device.waitForObject(BenchmarkFixtures.vehicleItem(1)).click()
+        device.waitForObject(BenchmarkFixtures.recordVehicleItem()).click()
         device.waitForObject(BenchmarkTags.RECORD_LIST)


Output:
Exit code: 0
Wall time: 1.7 seconds
Output:
Success. Updated the following files:
M /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/BenchmarkFixtures.kt
M /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt


Output:
Chunk ID: a28a21
Wall time: 1.0006 seconds
Process running with session ID 43654
Original token count: 13
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off


Output:
Chunk ID: d14476
Wall time: 5.0011 seconds
Process running with session ID 43654
Original token count: 1271
Output:

> Configure project :app
WARNING: The option setting 'android.testoptions.manageddevices.emulator.gpu=host' is experimental.

> Task :app:preBuild UP-TO-DATE
> Task :macrobenchmark:preBuild UP-TO-DATE
> Task :app:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:checkTestedAppObfuscationBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:processBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:parseBenchmarkLocalResources UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkRFile UP-TO-DATE
> Task :macrobenchmark:javaPreCompileBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:compressBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkAarMetadata UP-TO-DATE
> Task :macrobenchmark:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:mergeBenchmarkArtProfile UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkResources UP-TO-DATE
> Task :app:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :app:generateBenchmarkBuildConfig UP-TO-DATE
> Task :app:generateBenchmarkResources UP-TO-DATE
> Task :app:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:processBenchmarkManifest UP-TO-DATE
> Task :macrobenchmark:processBenchmarkResources UP-TO-DATE
> Task :app:processBenchmarkNavigationResources UP-TO-DATE
> Task :app:parseBenchmarkLocalResources UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :app:generateBenchmarkRFile UP-TO-DATE
> Task :macrobenchmark:mergeExtDexBenchmark UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :macrobenchmark:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :macrobenchmark:validateSigningBenchmark UP-TO-DATE
> Task :macrobenchmark:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:compileBenchmarkKotlin UP-TO-DATE
> Task :app:javaPreCompileBenchmark UP-TO-DATE
> Task :app:compileBenchmarkJavaWithJavac UP-TO-DATE
> Task :app:checkBenchmarkAarMetadata UP-TO-DATE
> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :app:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:mergeBenchmarkResources UP-TO-DATE
> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksBenchmark UP-TO-DATE
> Task :app:processBenchmarkMainManifest UP-TO-DATE
> Task :app:processBenchmarkManifest UP-TO-DATE
> Task :app:processBenchmarkManifestForPackage UP-TO-DATE
> Task :app:processBenchmarkResources UP-TO-DATE
> Task :app:dexBuilderBenchmark UP-TO-DATE
> Task :app:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :app:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :app:mergeBenchmarkStartupProfile UP-TO-DATE
> Task :app:mergeExtDexBenchmark UP-TO-DATE
> Task :app:mergeDexBenchmark UP-TO-DATE
> Task :app:compileBenchmarkArtProfile UP-TO-DATE
> Task :app:generateBenchmarkAssets UP-TO-DATE
> Task :app:mergeBenchmarkAssets UP-TO-DATE
> Task :app:compressBenchmarkAssets UP-TO-DATE
> Task :app:extractBenchmarkVersionControlInfo UP-TO-DATE
> Task :app:extractProguardFiles UP-TO-DATE
> Task :app:generateBenchmarkLintVitalReportModel UP-TO-DATE
> Task :app:lintVitalAnalyzeBenchmark UP-TO-DATE
> Task :app:lintVitalReportBenchmark UP-TO-DATE
> Task :app:lintVitalBenchmark
> Task :app:processBenchmarkJavaRes UP-TO-DATE
> Task :app:mergeBenchmarkJavaResource UP-TO-DATE
> Task :app:optimizeBenchmarkResources UP-TO-DATE
> Task :app:collectBenchmarkDependencies UP-TO-DATE
> Task :app:sdkBenchmarkDependencyData UP-TO-DATE
> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :app:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :app:validateSigningBenchmark UP-TO-DATE
> Task :app:writeBenchmarkAppMetadata UP-TO-DATE
> Task :app:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:packageBenchmark UP-TO-DATE
> Task :app:createBenchmarkApkListingFileRedirect UP-TO-DATE

> Task :macrobenchmark:pixel2api33Setup
The device "pixel2api33" does not specify a "testedAbi".
This currently defaults to "x86_64", but will change to "arm64-v8a" in AGP 10.0.

The system image configured for "pixel2api33" does not support NDK translation,
so it will be unable to run tests built for "arm64-v8a".

To keep the current behavior and prevent test failures in AGP 10.0,
explicitly set the ABI: testedAbi = "x86_64"

> Task :macrobenchmark:compileBenchmarkKotlin
> Task :macrobenchmark:compileBenchmarkJavaWithJavac NO-SOURCE
> Task :macrobenchmark:dexBuilderBenchmark
> Task :macrobenchmark:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :macrobenchmark:processBenchmarkJavaRes UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJavaResource UP-TO-DATE
> Task :macrobenchmark:mergeDexBenchmark


Output:
Chunk ID: b8331e
Wall time: 5.0012 seconds
Process running with session ID 43654
Original token count: 28
Output:
> Task :macrobenchmark:packageBenchmark
> Task :macrobenchmark:createBenchmarkApkListingFileRedirect UP-TO-DATE


Output:
Chunk ID: bf6de8
Wall time: 5.0009 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 5346c3
Wall time: 5.0011 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 390d3e
Wall time: 5.0010 seconds
Process running with session ID 43654
Original token count: 22
Output:
> Task :macrobenchmark:pixel2api33BenchmarkAndroidTest

Starting 4 tests on pixel2api33


Output:
Chunk ID: 9841ea
Wall time: 5.0012 seconds
Process running with session ID 43654
Original token count: 14
Output:
pixel2api33 Tests 0/4 completed. (0 skipped) (0 failed)


Output:
Chunk ID: 5247cc
Wall time: 5.0010 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 5f28ca
Wall time: 5.0008 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 3d54e1
Wall time: 5.0010 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 88c4d1
Wall time: 5.0011 seconds
Process running with session ID 43654
Original token count: 14
Output:
pixel2api33 Tests 1/4 completed. (0 skipped) (0 failed)


The corrected run is making progress: 1 of 4 benchmarks completed with 0 failures so far.


Output:
Chunk ID: 70ed56
Wall time: 5.0007 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: b7fe88
Wall time: 5.0020 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 7938f0
Wall time: 5.0004 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 108b48
Wall time: 5.0002 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 0b2a22
Wall time: 5.0007 seconds
Process running with session ID 43654
Original token count: 14
Output:
pixel2api33 Tests 2/4 completed. (0 skipped) (0 failed)


Output:
Chunk ID: 8aae1a
Wall time: 5.0010 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 58eb88
Wall time: 5.0007 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 1e17b3
Wall time: 5.0012 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 6d5f45
Wall time: 5.0012 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: f3d729
Wall time: 5.0007 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 8b0544
Wall time: 5.0007 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: e1a698
Wall time: 5.0004 seconds
Process running with session ID 43654
Original token count: 78
Output:

com.yorvana.macrobenchmark.YorvanaBenchmark > M03_recordListScroll[pixel2api33] FAILED
	java.lang.IllegalStateException: Timed out waiting for VehicleList
	at com.yorvana.macrobenchmark.YorvanaBenchmark.waitForObject(YorvanaBenchmark.kt:117)
pixel2api33 Tests 3/4 completed. (0 skipped) (1 failed)


nl -ba macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt | sed -n '100,125p'


Output:
Chunk ID: a0fcd6
Wall time: 0.1955 seconds
Process exited with code 0
Original token count: 275
Output:
   100	        }
   101
   102	    private fun MacrobenchmarkScope.seedVault(fixture: String) {
   103	        device.pressHome()
   104	        device.executeShellCommand(
   105	            "am start -W -a ${BenchmarkFixtures.SEED_ACTION} " +
   106	                "--es ${BenchmarkFixtures.EXTRA_FIXTURE} $fixture ${BenchmarkFixtures.PACKAGE_NAME}",
   107	        )
   108	        device.waitForObject(BenchmarkTags.VEHICLE_LIST)
   109	    }
   110
   111	    private fun MacrobenchmarkScope.openRecordVehicle() {
   112	        device.waitForObject(BenchmarkFixtures.recordVehicleItem()).click()
   113	        device.waitForObject(BenchmarkTags.RECORD_LIST)
   114	    }
   115
   116	    private fun UiDevice.waitForObject(resourceName: String) =
   117	        wait(Until.findObject(By.res(resourceName)), TIMEOUT_MS) ?: error("Timed out waiting for $resourceName")
   118
   119	    companion object {
   120	        private const val ITERATIONS = 5
   121	        private const val SCROLL_REPEAT_COUNT = 2
   122	        private const val TIMEOUT_MS = 30_000L
   123	    }
   124	}


Output:
Chunk ID: 05b98f
Wall time: 5.0009 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 14ff1d
Wall time: 5.0012 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 4c9468
Wall time: 5.0016 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 8da9d0
Wall time: 5.0014 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 6b0b29
Wall time: 5.0009 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 31351d
Wall time: 5.0009 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: cee031
Wall time: 5.0008 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 7a8fed
Wall time: 5.0009 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: 10910e
Wall time: 5.0009 seconds
Process running with session ID 43654
Original token count: 0
Output:


Output:
Chunk ID: e7a8f9
Wall time: 5.0013 seconds
Process running with session ID 43654
Original token count: 0
Output: