// slesTest_playStates

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

cc_test {
    name: "slesTest_playStates",
    gtest: false,

    srcs: ["slesTest_playStates.cpp"],

    shared_libs: ["libOpenSLES"],

    cflags: [
        "-Werror",
        "-Wall",

        "-UNDEBUG",
        "-Wno-deprecated-declarations",
    ],
}

// slesTest_playStreamType

cc_test {
    name: "slesTest_playStreamType",
    gtest: false,

    srcs: ["slesTestPlayStreamType.cpp"],

    shared_libs: ["libOpenSLES"],

    cflags: [
        "-Werror",
        "-Wall",

        "-UNDEBUG",
        "-Wno-deprecated-declarations",
    ],
}

// slesTest_playUri

cc_test {
    name: "slesTest_playUri",
    gtest: false,

    srcs: ["slesTestPlayUri.cpp"],

    shared_libs: ["libOpenSLES"],

    cflags: [
        "-Werror",
        "-Wall",

        "-UNDEBUG",
        "-Wno-deprecated-declarations",
    ],
}

// slesTest_loopUri

cc_test {
    name: "slesTest_loopUri",
    gtest: false,

    srcs: ["slesTestLoopUri.cpp"],

    shared_libs: ["libOpenSLES"],

    cflags: [
        "-Werror",
        "-Wall",

        "-UNDEBUG",
        "-Wno-deprecated-declarations",
    ],
}

// slesTest_playUri2

cc_test {
    name: "slesTest_playUri2",
    gtest: false,

    srcs: ["slesTestPlayUri2.cpp"],

    shared_libs: ["libOpenSLES"],

    cflags: [
        "-Werror",
        "-Wall",

        "-UNDEBUG",
        "-Wno-deprecated-declarations",
    ],

}

// slesTest_slowDownUri

cc_test {
    name: "slesTest_slowDownUri",
    gtest: false,

    srcs: ["slesTestSlowDownUri.cpp"],

    shared_libs: ["libOpenSLES"],

    cflags: [
        "-Werror",
        "-Wall",

        "-UNDEBUG",
        "-Wno-deprecated-declarations",
    ],
}

// slesTest_manyPlayers

cc_test {
    name: "slesTest_manyPlayers",
    gtest: false,

    srcs: ["slesTestManyPlayers.cpp"],

    shared_libs: ["libOpenSLES"],

    cflags: [
        "-Werror",
        "-Wall",

        "-UNDEBUG",
        "-Wno-deprecated-declarations",
    ],
}

// slesTest_getPositionUri

cc_test {
    name: "slesTest_getPositionUri",
    gtest: false,

    srcs: ["slesTestGetPositionUri.cpp"],

    shared_libs: ["libOpenSLES"],

    cflags: [
        "-Werror",
        "-Wall",

        "-UNDEBUG",
        "-Wno-deprecated-declarations",
    ],
}
