Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad15dd71 authored by Sebastian Franco's avatar Sebastian Franco
Browse files

Make sure we keep the screen record even if the test succeeds

Bug: 322823478
Test: testEdu
Test: testDevicePressMenu
Flag: NA
Change-Id: Ia11d3cbc0a10e15d716b1845e3590bca2bd1ff76
parent c0a1fbe8
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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 {
+2 −0
Original line number Diff line number Diff line
@@ -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() {
+14 −1
Original line number Diff line number Diff line
@@ -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 {
    }
}