/* * Copyright © 2022-2023 Harsh Shandilya. * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. */ package dev.msfjarvis.claw.benchmark import androidx.benchmark.macro.junit4.BaselineProfileRule import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice import org.junit.Before import org.junit.Rule import org.junit.Test class BaselineProfileGenerator { @get:Rule val baselineProfileRule = BaselineProfileRule() private lateinit var device: UiDevice @Before fun setUp() { val instrumentation = InstrumentationRegistry.getInstrumentation() device = UiDevice.getInstance(instrumentation) } @Test fun generateBaselineProfile() = baselineProfileRule.collect( packageName = PACKAGE_NAME, maxIterations = 8, includeInStartupProfile = true, ) { device.executeShellCommand("pm clear $PACKAGE_NAME") startActivityAndWait() device.waitForIdle() device.savePosts() device.exploreScreens() device.returnToHottestScreen() } }