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

Commit 7dbbaafb authored by Nataniel Borges's avatar Nataniel Borges Committed by Android (Google) Code Review
Browse files

Merge changes If0ad19b7,Ia17b0425 into main

* changes:
  Format code according to linter rules after moving it into different packages
  Split wm shell flicker tests into completely independent folders, which can be transferred to the respective teams.
parents a5b705cc dc61a79f
Loading
Loading
Loading
Loading
+3 −267
Original line number Diff line number Diff line
@@ -28,93 +28,6 @@ filegroup {
    srcs: ["src/com/android/wm/shell/flicker/utils/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsBase-src",
    srcs: ["src/com/android/wm/shell/flicker/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsBubbles-src",
    srcs: ["src/com/android/wm/shell/flicker/bubble/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsPip1-src",
    srcs: [
        "src/com/android/wm/shell/flicker/pip/A*.kt",
        "src/com/android/wm/shell/flicker/pip/B*.kt",
        "src/com/android/wm/shell/flicker/pip/C*.kt",
        "src/com/android/wm/shell/flicker/pip/D*.kt",
        "src/com/android/wm/shell/flicker/pip/S*.kt",
    ],
}

filegroup {
    name: "WMShellFlickerTestsPip2-src",
    srcs: [
        "src/com/android/wm/shell/flicker/pip/E*.kt",
    ],
}

filegroup {
    name: "WMShellFlickerTestsPip3-src",
    srcs: ["src/com/android/wm/shell/flicker/pip/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsPipCommon-src",
    srcs: ["src/com/android/wm/shell/flicker/pip/common/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsPipApps-src",
    srcs: ["src/com/android/wm/shell/flicker/pip/apps/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsSplitScreenBase-src",
    srcs: [
        "src/com/android/wm/shell/flicker/splitscreen/benchmark/*.kt",
    ],
}

filegroup {
    name: "WMShellFlickerTestsSplitScreenGroup1-src",
    srcs: [
        "src/com/android/wm/shell/flicker/splitscreen/A*.kt",
        "src/com/android/wm/shell/flicker/splitscreen/B*.kt",
        "src/com/android/wm/shell/flicker/splitscreen/C*.kt",
        "src/com/android/wm/shell/flicker/splitscreen/D*.kt",
        "src/com/android/wm/shell/flicker/splitscreen/E*.kt",
    ],
}

filegroup {
    name: "WMShellFlickerTestsSplitScreenGroup2-src",
    srcs: [
        "src/com/android/wm/shell/flicker/splitscreen/*.kt",
    ],
}

filegroup {
    name: "WMShellFlickerServicePlatinumTests-src",
    srcs: [
        "src/com/android/wm/shell/flicker/service/*/platinum/**/*.kt",
        "src/com/android/wm/shell/flicker/service/*/scenarios/**/*.kt",
        "src/com/android/wm/shell/flicker/service/common/**/*.kt",
    ],
}

filegroup {
    name: "WMShellFlickerServiceTests-src",
    srcs: [
        "src/com/android/wm/shell/flicker/service/**/*.kt",
    ],
    exclude_srcs: [
        "src/com/android/wm/shell/flicker/service/*/platinum/**/*.kt",
    ],
}

java_library {
    name: "wm-shell-flicker-utils",
    platform_apis: true,
@@ -138,23 +51,8 @@ java_library {
    ],
}

java_library {
    name: "wm-shell-flicker-platinum-tests",
    platform_apis: true,
    optimize: {
        enabled: false,
    },
    srcs: [
        ":WMShellFlickerServicePlatinumTests-src",
    ],
    static_libs: [
        "wm-shell-flicker-utils",
    ],
}

java_defaults {
    name: "WMShellFlickerTestsDefaultWithoutTemplate",
    manifest: "manifests/AndroidManifest.xml",
    platform_apis: true,
    certificate: "platform",
    optimize: {
@@ -187,170 +85,8 @@ java_defaults {
    test_config_template: "AndroidTestTemplate.xml",
}

android_test {
    name: "WMShellFlickerTestsOther",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestOther.xml"],
    package_name: "com.android.wm.shell.flicker",
    instrumentation_target_package: "com.android.wm.shell.flicker",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],
    exclude_srcs: [
        ":WMShellFlickerTestsBubbles-src",
        ":WMShellFlickerTestsPip1-src",
        ":WMShellFlickerTestsPip2-src",
        ":WMShellFlickerTestsPip3-src",
        ":WMShellFlickerTestsPipCommon-src",
        ":WMShellFlickerTestsPipApps-src",
        ":WMShellFlickerTestsSplitScreenGroup1-src",
        ":WMShellFlickerTestsSplitScreenGroup2-src",
        ":WMShellFlickerTestsSplitScreenBase-src",
        ":WMShellFlickerServiceTests-src",
        ":WMShellFlickerServicePlatinumTests-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsBubbles",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestBubbles.xml"],
    package_name: "com.android.wm.shell.flicker.bubbles",
    instrumentation_target_package: "com.android.wm.shell.flicker.bubbles",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsBubbles-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsPip1",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestPip.xml"],
    package_name: "com.android.wm.shell.flicker.pip",
    instrumentation_target_package: "com.android.wm.shell.flicker.pip",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsPip1-src",
        ":WMShellFlickerTestsPipCommon-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsPip2",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestPip.xml"],
    package_name: "com.android.wm.shell.flicker.pip",
    instrumentation_target_package: "com.android.wm.shell.flicker.pip",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsPip2-src",
        ":WMShellFlickerTestsPipCommon-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsPip3",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestPip.xml"],
    package_name: "com.android.wm.shell.flicker.pip",
    instrumentation_target_package: "com.android.wm.shell.flicker.pip",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsPip3-src",
        ":WMShellFlickerTestsPipCommon-src",
    ],
    exclude_srcs: [
        ":WMShellFlickerTestsPip1-src",
        ":WMShellFlickerTestsPip2-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsPipApps",
    defaults: ["WMShellFlickerTestsDefault"],
    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",
    ],
}

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"],
    additional_manifests: ["manifests/AndroidManifestSplitScreen.xml"],
    package_name: "com.android.wm.shell.flicker.splitscreen",
    instrumentation_target_package: "com.android.wm.shell.flicker.splitscreen",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsSplitScreenBase-src",
        ":WMShellFlickerTestsSplitScreenGroup1-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsSplitScreenGroup2",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestSplitScreen.xml"],
    package_name: "com.android.wm.shell.flicker.splitscreen",
    instrumentation_target_package: "com.android.wm.shell.flicker.splitscreen",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsSplitScreenBase-src",
        ":WMShellFlickerTestsSplitScreenGroup2-src",
    ],
    exclude_srcs: [
        ":WMShellFlickerTestsSplitScreenGroup1-src",
    ],
}

android_test {
    name: "WMShellFlickerServiceTests",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestService.xml"],
    package_name: "com.android.wm.shell.flicker.service",
    instrumentation_target_package: "com.android.wm.shell.flicker.service",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerServiceTests-src",
    ],
}

android_test {
    name: "WMShellFlickerServicePlatinumTests",
java_library {
    name: "WMShellFlickerTestsBase",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestService.xml"],
    package_name: "com.android.wm.shell.flicker.service",
    instrumentation_target_package: "com.android.wm.shell.flicker.service",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerServicePlatinumTests-src",
    ],
}

csuite_test {
    name: "csuite-1p3p-pip-flickers",
    test_config_template: "csuiteDefaultTemplate.xml",
    srcs: ["src/com/android/wm/shell/flicker/*.kt"],
}
+41 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2020 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.
//

package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_base_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["frameworks_base_license"],
}

filegroup {
    name: "WMShellFlickerTestsAppCompat-src",
    srcs: [
        "src/**/*.kt",
    ],
}

android_test {
    name: "WMShellFlickerTestsOther",
    defaults: ["WMShellFlickerTestsDefault"],
    manifest: "AndroidManifest.xml",
    package_name: "com.android.wm.shell.flicker",
    instrumentation_target_package: "com.android.wm.shell.flicker",
    srcs: [":WMShellFlickerTestsAppCompat-src"],
    static_libs: ["WMShellFlickerTestsBase"],
}
+20 −15
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2020 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.
<!--
  ~ 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.
  -->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
@@ -69,4 +69,9 @@
            android:authorities="${applicationId}.androidx-startup"
            tools:node="remove" />
    </application>

    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
                     android:targetPackage="com.android.wm.shell.flicker"
                     android:label="WindowManager Flicker Tests">
    </instrumentation>
</manifest>
+109 −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 {MODULE}">
    <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="{MODULE}.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="{PACKAGE}"/>
        <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.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>
</configuration>
Loading