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

Commit bc1618f5 authored by youtengliang's avatar youtengliang
Browse files

Settings performance testing

1. Enable airplane mode before start testing.
2. Reset airplane mode after testing.
3. Add all_results tag to track results we have.
4. Add result_count tag to track how many results we have.
5. Add shell command result details to log.

Test: atest SettingsPerfTests:LaunchSettingsTest
Change-Id: I24ed167599b660b2aa94b4a3f8ddae1dcf3d04ff
parent 9e974afd
Loading
Loading
Loading
Loading
+34 −3
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ public class LaunchSettingsTest {
    private Instrumentation mInstrumentation;
    private Map<String, ArrayList<Integer>> mResult;
    private String mDefaultScreenTimeout;
    private String mDefaultAirplaneModeStatus;

    @Before
    public void setUp() throws Exception {
@@ -88,7 +89,9 @@ public class LaunchSettingsTest {
        mResult = new LinkedHashMap<>();
        mDefaultScreenTimeout = mDevice.executeShellCommand(
                "settings get system screen_off_timeout");
        mDefaultAirplaneModeStatus = getAirplaneModeStatus();
        setScreenTimeOut(SCREEN_TIME_OUT);
        setAirplaneMode();
        mDevice.pressHome();
        mDevice.waitForIdle(TIME_OUT);

@@ -102,6 +105,7 @@ public class LaunchSettingsTest {
        putResultToBundle();
        mInstrumentation.sendStatus(0, mBundle);
        resetScreenTimeout();
        resetAirplaneMode();
        closeApp();
    }

@@ -123,12 +127,12 @@ public class LaunchSettingsTest {
        handleLaunchResult(title, mString);
    }

    private void handleLaunchResult(String title, String s) {
        Matcher mMatcher = PATTERN.matcher(s);
    private void handleLaunchResult(String title, String shellCommandResult) {
        Matcher mMatcher = PATTERN.matcher(shellCommandResult);
        if (mMatcher.find()) {
            mResult.get(title).add(Integer.valueOf(mMatcher.group().split("\\s")[1]));
        } else {
            fail("Some pages can't be found");
            fail(String.format("Not found %s.\n %s", title, shellCommandResult));
        }
    }

@@ -145,6 +149,10 @@ public class LaunchSettingsTest {
                    getMin(mResult.get(string)));
            mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "avg"),
                    getAvg(mResult.get(string)));
            mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "all_results"),
                    mResult.get(string).toString());
            mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "results_count"),
                    String.valueOf(mResult.get(string).size()));
        }
    }

@@ -171,4 +179,27 @@ public class LaunchSettingsTest {
        }
        setScreenTimeOut(timeout);
    }

    private void setAirplaneMode() throws Exception {
        if (mDefaultAirplaneModeStatus.equals("0\n")) {
            clickAirplaneMode();
        }
    }

    private void resetAirplaneMode() throws Exception {
        if (!getAirplaneModeStatus().equals(mDefaultAirplaneModeStatus)) {
            clickAirplaneMode();
        }
    }

    private void clickAirplaneMode() throws Exception {
        mDevice.executeShellCommand("am start -W -a android.settings.AIRPLANE_MODE_SETTINGS");
        mDevice.waitForIdle(TIME_OUT);
        mDevice.findObject(By.textContains("Airplane")).click();
        mDevice.waitForIdle(TIME_OUT);
    }

    private String getAirplaneModeStatus() throws Exception {
        return mDevice.executeShellCommand("settings get global airplane_mode_on");
    }
}
 No newline at end of file