mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 15:26:58 +00:00
Make sure we keep the screen record even if the test succeeds
Bug: 322823478 Test: testEdu Test: testDevicePressMenu Flag: NA Change-Id: Ia11d3cbc0a10e15d716b1845e3590bca2bd1ff76
This commit is contained in:
@@ -21,8 +21,9 @@ import static org.junit.Assert.assertNotNull;
|
||||
import androidx.test.filters.LargeTest;
|
||||
import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.launcher3.util.rule.ScreenRecordRule.ScreenRecord;
|
||||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.util.rule.ScreenRecordRule.KeepRecordOnSuccess;
|
||||
import com.android.launcher3.util.rule.ScreenRecordRule.ScreenRecord;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -31,6 +32,7 @@ import org.junit.runner.RunWith;
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class TaplTestsLauncher3Test extends AbstractLauncherUiTest<Launcher> {
|
||||
|
||||
@KeepRecordOnSuccess
|
||||
@ScreenRecord // b/322823478
|
||||
@Test
|
||||
public void testDevicePressMenu() throws Exception {
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.android.launcher3.allapps.WorkPausedCard;
|
||||
import com.android.launcher3.allapps.WorkProfileManager;
|
||||
import com.android.launcher3.tapl.LauncherInstrumentation;
|
||||
import com.android.launcher3.util.TestUtil;
|
||||
import com.android.launcher3.util.rule.ScreenRecordRule.KeepRecordOnSuccess;
|
||||
import com.android.launcher3.util.rule.ScreenRecordRule.ScreenRecord;
|
||||
import com.android.launcher3.util.rule.TestStabilityRule.Stability;
|
||||
|
||||
@@ -196,6 +197,7 @@ public class TaplWorkProfileTest extends AbstractLauncherUiTest<Launcher> {
|
||||
|
||||
}
|
||||
|
||||
@KeepRecordOnSuccess
|
||||
@ScreenRecord // b/322823478
|
||||
@Test
|
||||
public void testEdu() {
|
||||
|
||||
@@ -49,6 +49,9 @@ public class ScreenRecordRule implements TestRule {
|
||||
return base;
|
||||
}
|
||||
|
||||
final Boolean keepRecordOnSuccess = description.getAnnotation(KeepRecordOnSuccess.class)
|
||||
!= null;
|
||||
|
||||
return new Statement() {
|
||||
@Override
|
||||
public void evaluate() throws Throwable {
|
||||
@@ -70,7 +73,7 @@ public class ScreenRecordRule implements TestRule {
|
||||
device.executeShellCommand("kill -INT " + screenRecordPid);
|
||||
Log.e(TAG, "Screenrecord captured at: " + outputFile);
|
||||
output.close();
|
||||
if (success) {
|
||||
if (success && !keepRecordOnSuccess) {
|
||||
automation.executeShellCommand("rm " + outputFile);
|
||||
}
|
||||
}
|
||||
@@ -85,4 +88,14 @@ public class ScreenRecordRule implements TestRule {
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface ScreenRecord {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Interface to indicate that we should keep the screen record even if the test succeeds, use
|
||||
* sparingly since it uses a lof of memory.
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface KeepRecordOnSuccess {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user