//
// Copyright (C) 2013-2014 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.
//

// -----------------------------------------------------------------------------
// Benchmarks.
// -----------------------------------------------------------------------------

// Build benchmarks for the device. Run with:
//   adb shell liblog-benchmarks
package {
    // A large-scale-change added 'default_applicable_licenses' to import
    // the below license kinds from "system_logging_liblog_license":
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["system_logging_liblog_license"],
}

cc_benchmark {
    name: "liblog-benchmarks",
    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
        "-fno-builtin",
    ],
    shared_libs: [
        "libm",
        "libbase",
        "libcutils",
    ],
    static_libs: ["liblog"],
    srcs: ["liblog_benchmark.cpp"],
}

// -----------------------------------------------------------------------------
// Fuzzers.
// -----------------------------------------------------------------------------

cc_fuzz {
    name: "liblog_convertPrintable_fuzzer",
    srcs: [
        "liblog_convertPrintable_fuzzer.cpp",
    ],
    static_libs: ["liblog"],
}

// -----------------------------------------------------------------------------
// Unit tests.
// -----------------------------------------------------------------------------

cc_defaults {
    name: "liblog-tests-defaults",

    cflags: [
        "-fstack-protector-all",
        "-g",
        "-Wall",
        "-Wextra",
        "-Werror",
        "-fno-builtin",
    ],
    srcs: [
        "libc_test.cpp",
        "liblog_default_tag.cpp",
        "liblog_global_state.cpp",
        "liblog_test.cpp",
        "log_id_test.cpp",
        "log_radio_test.cpp",
        "log_read_test.cpp",
        "log_system_test.cpp",
        "log_time_test.cpp",
        "log_wrap_test.cpp",
        "logd_writer_test.cpp",
        "logprint_test.cpp",
    ],
    shared_libs: [
        "libcutils",
        "libbase",
    ],
    static_libs: ["liblog"],
    isolated: true,
    require_root: true,
}

// Build tests for the device (with .so). Run with:
//   adb shell /data/nativetest/liblog-unit-tests/liblog-unit-tests
cc_test {
    name: "liblog-unit-tests",
    defaults: ["liblog-tests-defaults"],
}

cc_test {
    name: "CtsLiblogTestCases",
    defaults: ["liblog-tests-defaults"],
    multilib: {
        lib32: {
            suffix: "32",
        },
        lib64: {
            suffix: "64",
        },
    },

    cflags: ["-DNO_PSTORE"],
    test_suites: [
        "cts",
        "device-tests",
    ],
    test_config: "device_test_config.xml",
}

cc_test_host {
    name: "liblog-host-test",
    static_libs: ["liblog"],
    shared_libs: ["libbase"],
    srcs: [
        "liblog_host_test.cpp",
        "liblog_default_tag.cpp",
        "liblog_global_state.cpp",
        "logprint_test.cpp",
    ],
    isolated: true,
}
