//########################################################################
// Build WmTests package
//########################################################################

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"],
}

// Include all test java files.
filegroup {
    name: "wmtests-sources",
    srcs: [
        "src/**/*.java",
    ],
}

java_genrule {
    name: "wmtests.protologsrc",
    srcs: [
        ":protolog-impl",
        ":protolog-groups",
        ":wmtests-sources",
    ],
    tools: ["protologtool"],
    cmd: "$(location protologtool) transform-protolog-calls " +
        "--protolog-class com.android.internal.protolog.ProtoLog " +
        "--loggroups-class com.android.internal.protolog.ProtoLogGroup " +
        "--loggroups-jar $(location :protolog-groups) " +
        // Used for the ProtoLogIntegrationTest, where don't test decoding or writing to file
        // so the parameters below are irrelevant.
        "--viewer-config-file-path /some/unused/file/path.pb " +
        "--legacy-viewer-config-file-path /some/unused/file/path.json.gz " +
        "--legacy-output-file-path /some/unused/file/path.winscope " +
        // END of irrelevant params.
        "--output-srcjar $(out) " +
        "$(locations :wmtests-sources)",
    out: ["wmtests.protolog.srcjar"],
}

android_test {
    name: "WmTests",

    // We only want this apk build for tests.
    srcs: [
        ":wmtests-sources",
        "src/**/*.aidl",
    ],

    static_libs: [
        "frameworks-base-testutils",
        "services.core",
        "service-permission.stubs.system_server",
        "androidx.test.runner",
        "androidx.test.rules",
        "flickerlib",
        "junit-params",
        "mockito-target-extended-minus-junit4",
        "platform-test-annotations",
        "servicestests-utils",
        "testng",
        "truth",
        "testables",
        "hamcrest-library",
        "flag-junit",
        "platform-compat-test-rules",
        "CtsSurfaceValidatorLib",
        "service-sdksandbox.impl",
        "com.android.window.flags.window-aconfig-java",
        "flag-junit",
    ],

    libs: [
        "android.hardware.power-V1-java",
        "android.test.mock.stubs.system",
        "android.test.base.stubs.system",
        "android.test.runner.stubs.system",
    ],

    defaults: [
        "modules-utils-testable-device-config-defaults",
    ],

    // These are not normally accessible from apps so they must be explicitly included.
    jni_libs: [
        "libdexmakerjvmtiagent",
        "libstaticjvmtiagent",
    ],

    platform_apis: true,
    test_suites: [
        "device-tests",
        "automotive-tests",
    ],

    certificate: "platform",

    dxflags: ["--multi-dex"],

    optimize: {
        enabled: false,
    },

    data: [
        ":OverlayTestApp",
    ],
}

test_module_config {
    name: "WmTests_server_policy_Presubmit",
    base: "WmTests",
    test_suites: [
        "automotive-tests",
        "device-tests",
    ],
    include_filters: ["com.android.server.policy."],
    include_annotations: ["android.platform.test.annotations.Presubmit"],
}

test_module_config {
    name: "WmTests_server_policy",
    base: "WmTests",
    test_suites: [
        "automotive-tests",
        "device-tests",
    ],
    include_filters: ["com.android.server.policy."],
}

test_module_config {
    name: "WmTests_wm_utils_Presubmit",
    base: "WmTests",
    test_suites: [
        "automotive-tests",
        "device-tests",
    ],
    include_filters: ["com.android.server.wm.utils"],
    include_annotations: ["android.platform.test.annotations.Presubmit"],
}
