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

Commit f60f090e authored by Mateusz Cicheński's avatar Mateusz Cicheński Committed by Android (Google) Code Review
Browse files

Merge "Add CSuite target for 1p/3p apps pip flicker tests" into main

parents 2fa38077 0288c39c
Loading
Loading
Loading
Loading
+29 −2
Original line number Diff line number Diff line
@@ -153,9 +153,8 @@ java_library {
}

java_defaults {
    name: "WMShellFlickerTestsDefault",
    name: "WMShellFlickerTestsDefaultWithoutTemplate",
    manifest: "manifests/AndroidManifest.xml",
    test_config_template: "AndroidTestTemplate.xml",
    platform_apis: true,
    certificate: "platform",
    optimize: {
@@ -182,6 +181,12 @@ java_defaults {
    ],
}

java_defaults {
    name: "WMShellFlickerTestsDefault",
    defaults: ["WMShellFlickerTestsDefaultWithoutTemplate"],
    test_config_template: "AndroidTestTemplate.xml",
}

android_test {
    name: "WMShellFlickerTestsOther",
    defaults: ["WMShellFlickerTestsDefault"],
@@ -275,6 +280,23 @@ android_test {
    ],
}

android_test {
    name: "WMShellFlickerTestsPipAppsCSuite",
    defaults: ["WMShellFlickerTestsDefaultWithoutTemplate"],
    additional_manifests: ["manifests/AndroidManifestPip.xml"],
    package_name: "com.android.wm.shell.flicker.pip.apps",
    instrumentation_target_package: "com.android.wm.shell.flicker.pip.apps",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsPipApps-src",
        ":WMShellFlickerTestsPipCommon-src",
    ],
    test_suites: [
        "device-tests",
        "csuite",
    ],
}

android_test {
    name: "WMShellFlickerTestsSplitScreenGroup1",
    defaults: ["WMShellFlickerTestsDefault"],
@@ -327,3 +349,8 @@ android_test {
        ":WMShellFlickerServicePlatinumTests-src",
    ],
}

csuite_test {
    name: "csuite-1p3p-pip-flickers",
    test_config_template: "csuiteDefaultTemplate.xml",
}
+121 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2023 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<configuration description="Runs WindowManager Shell Flicker Tests WMShellFlickerTestsPipAppsCSuite">
    <option name="test-tag" value="FlickerTests"/>
    <!-- Needed for storing the perfetto trace files in the sdcard/test_results-->
    <option name="isolated-storage" value="false"/>

    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup">
        <!-- keeps the screen on during tests -->
        <option name="screen-always-on" value="on"/>
        <!-- prevents the phone from restarting -->
        <option name="force-skip-system-props" value="true"/>
        <!-- set WM tracing verbose level to all -->
        <option name="run-command" value="cmd window tracing level all"/>
        <!-- set WM tracing to frame (avoid incomplete states) -->
        <option name="run-command" value="cmd window tracing frame"/>
        <!-- disable betterbug as it's log collection dialogues cause flakes in e2e tests -->
        <option name="run-command" value="pm disable com.google.android.internal.betterbug"/>
        <!-- ensure lock screen mode is swipe -->
        <option name="run-command" value="locksettings set-disabled false"/>
        <!-- restart launcher to activate TAPL -->
        <option name="run-command"
                value="setprop ro.test_harness 1 ; am force-stop com.google.android.apps.nexuslauncher"/>
        <!-- Increase trace size: 20mb for WM and 80mb for SF -->
        <option name="run-command" value="cmd window tracing size 20480"/>
        <option name="run-command" value="su root service call SurfaceFlinger 1029 i32 81920"/>
    </target_preparer>
    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="test-user-token" value="%TEST_USER%"/>
        <option name="run-command" value="rm -rf /data/user/%TEST_USER%/files/*"/>
        <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1"/>
        <option name="run-command" value="settings put system show_touches 1"/>
        <option name="run-command" value="settings put system pointer_location 1"/>
        <option name="teardown-command"
                value="settings delete secure show_ime_with_hard_keyboard"/>
        <option name="teardown-command" value="settings delete system show_touches"/>
        <option name="teardown-command" value="settings delete system pointer_location"/>
        <option name="teardown-command"
                value="cmd overlay enable com.android.internal.systemui.navbar.gestural"/>
    </target_preparer>
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true"/>
        <option name="test-file-name" value="WMShellFlickerTestsPipAppsCSuite.apk"/>
        <option name="test-file-name" value="FlickerTestApp.apk"/>
    </target_preparer>
    <!-- Enable mocking GPS location by the test app -->
    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command"
                value="appops set com.android.wm.shell.flicker.pip.apps android:mock_location allow"/>
        <option name="teardown-command"
                value="appops set com.android.wm.shell.flicker.pip.apps android:mock_location deny"/>
    </target_preparer>

    <!-- Needed for pushing the trace config file -->
    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
        <option name="push-file"
                key="trace_config.textproto"
                value="/data/misc/perfetto-traces/trace_config.textproto"
        />
        <!--Install the content provider automatically when we push some file in sdcard folder.-->
        <!--Needed to avoid the installation during the test suite.-->
        <option name="push-file" key="trace_config.textproto" value="/sdcard/sample.textproto"/>
    </target_preparer>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest">
        <option name="package" value="com.android.wm.shell.flicker.pip.apps"/>
        <option name="shell-timeout" value="6600s"/>
        <option name="test-timeout" value="6000s"/>
        <option name="hidden-api-checks" value="false"/>
        <option name="device-listeners" value="android.device.collectors.PerfettoListener"/>
        <!-- PerfettoListener related arguments -->
        <option name="instrumentation-arg" key="perfetto_config_text_proto" value="true"/>
        <option name="instrumentation-arg"
                key="perfetto_config_file"
                value="trace_config.textproto"
        />
        <option name="instrumentation-arg" key="per_run" value="true"/>
    </test>
    <!-- Needed for pulling the collected trace config on to the host -->
    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
        <option name="pull-pattern-keys" value="perfetto_file_path"/>
        <option name="directory-keys"
                value="/data/user/0/com.android.wm.shell.flicker/files"/>
        <option name="directory-keys"
                value="/data/user/0/com.android.wm.shell.flicker.bubbles/files"/>
        <option name="directory-keys"
                value="/data/user/0/com.android.wm.shell.flicker.pip/files"/>
        <option name="directory-keys"
                value="/data/user/0/com.android.wm.shell.flicker.pip.apps/files"/>
        <option name="directory-keys"
                value="/data/user/0/com.android.wm.shell.flicker.splitscreen/files"/>
        <option name="directory-keys"
                value="/data/user/0/com.android.wm.shell.flicker.service/files"/>
        <option name="collect-on-run-ended-only" value="true"/>
        <option name="clean-up" value="true"/>
    </metrics_collector>

    <!-- Needed for installing apk's from Play Store -->
    <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
        <option name="aapt-version" value="AAPT2"/>
        <option name="throw-if-not-found" value="false"/>
        <option name="install-arg" value="-d"/>
        <option name="install-arg" value="-g"/>
        <option name="install-arg" value="-r"/>
        <option name="test-file-name" value="pstash://com.netflix.mediaclient"/>
    </target_preparer>
</configuration>