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

cc_test {
    name: "libinput_tests",
    cpp_std: "c++20",
    host_supported: true,
    srcs: [
        "BlockingQueue_test.cpp",
        "IdGenerator_test.cpp",
        "InputChannel_test.cpp",
        "InputConsumer_test.cpp",
        "InputConsumerFilteredResampling_test.cpp",
        "InputConsumerResampling_test.cpp",
        "InputDevice_test.cpp",
        "InputEvent_test.cpp",
        "InputPublisherAndConsumer_test.cpp",
        "InputPublisherAndConsumerNoResampling_test.cpp",
        "InputVerifier_test.cpp",
        "MotionPredictor_test.cpp",
        "MotionPredictorMetricsManager_test.cpp",
        "OneEuroFilter_test.cpp",
        "Resampler_test.cpp",
        "RingBuffer_test.cpp",
        "TestInputChannel.cpp",
        "TfLiteMotionPredictor_test.cpp",
        "TouchResampling_test.cpp",
        "TouchVideoFrame_test.cpp",
        "VelocityControl_test.cpp",
        "VelocityTracker_test.cpp",
        "VerifiedInputEvent_test.cpp",
    ],
    header_libs: [
        "flatbuffer_headers",
        "tensorflow_headers",
    ],
    static_libs: [
        "libflagtest",
        "libgmock",
        "libgui_window_info_static",
        "libinput",
        "libkernelconfigs",
        "libtflite_static",
        "libui-types",
        "libz", // needed by libkernelconfigs
    ],
    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
        "-Wno-unused-parameter",
    ],
    sanitize: {
        hwaddress: true,
        undefined: true,
        all_undefined: true,
        diag: {
            undefined: true,
        },
    },
    shared_libs: [
        "libaconfig_storage_read_api_cc",
        "libbase",
        "libbinder",
        "libcutils",
        "liblog",
        "libPlatformProperties",
        "libstatslog",
        "libtinyxml2",
        "libutils",
        "server_configurable_flags",
    ],
    data: [
        "data/*",
        ":motion_predictor_model",
    ],
    test_options: {
        unit_test: true,
    },
    test_suites: ["device-tests"],
    target: {
        android: {
            static_libs: [
                "libstatslog_libinput",
                "libstatssocket_lazy",
            ],
        },
        host: {
            sanitize: {
                address: true,
            },
        },
    },
    native_coverage: false,
}

// NOTE: This is a compile time test, and does not need to be
// run. All assertions are static_asserts and will fail during
// buildtime if something's wrong.
cc_library_static {
    name: "StructLayout_test",
    srcs: ["StructLayout_test.cpp"],
    compile_multilib: "both",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
    ],
    shared_libs: [
        "libinput",
        "libcutils",
        "libutils",
        "libbinder",
        "libbase",
    ],
}
