//
// 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.
// -----------------------------------------------------------------------------

test_module_prefix = "liblog-"
test_tags = ["tests"]

benchmark_c_flags = [
    "-Ibionic/tests",
    "-Wall",
    "-Wextra",
    "-Werror",
    "-fno-builtin",
    "-std=gnu++11",
]

benchmark_src_files = [
    "benchmark_main.cpp",
    "liblog_benchmark.cpp",
]

// Build benchmarks for the device. Run with:
//   adb shell liblog-benchmarks
cc_binary {
    name: test_module_prefix + "benchmarks",
    tags: test_tags,

    cflags: benchmark_c_flags,
    shared_libs: [
        "liblog",
    ],
    srcs: benchmark_src_files,
    // ANDROIDMK TRANSLATION ERROR: unsupported assignment to LOCAL_MODULE_PATH
    // LOCAL_MODULE_PATH:=$(TARGET_OUT_DATA_NATIVE_TESTS)/$(LOCAL_MODULE)
}

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

test_c_flags = [
    "-fstack-protector-all",
    "-g",
    "-Wall",
    "-Wextra",
    "-Werror",
    "-fno-builtin",
    "-std=gnu++11",
]

test_src_files = ["liblog_test.cpp"]

// to prevent breaking the build if bionic not relatively visible to us
// ANDROIDMK TRANSLATION ERROR: unsupported conditional
// ifneq ($(wildcard $(LOCAL_PATH)/../../../../bionic/libc/bionic/libc_logging.cpp),)
test_src_files += ["libc_test.cpp"]

// ANDROIDMK TRANSLATION ERROR: unsupported conditional
// ifneq ($(TARGET_USES_LOGD),false)
test_c_flags += ["-DTARGET_USES_LOGD"]
// ANDROIDMK TRANSLATION ERROR: endif from unsupported contitional
// endif
// ANDROIDMK TRANSLATION ERROR: endif from unsupported contitional
// endif
// Build tests for the device (with .so). Run with:
//   adb shell /data/nativetest/liblog-unit-tests/liblog-unit-tests
cc_test {
    name: test_module_prefix + "unit-tests",
    tags: test_tags,

    cflags: test_c_flags,
    shared_libs: ["liblog"],
    srcs: test_src_files,
}
