/*
 * Copyright 2017 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.
 */

cc_defaults {
    name: "NeuralNetworksTest_defaults",
    defaults: ["neuralnetworks_defaults"],
    host_supported: false,
    openmp: true,
    srcs: [
        // Subset of tests that rely only on public functionality.
        //
        // Changes to this list must be reflected in cts/tests/tests/neuralnetworks/Android.mk
        // to ensure CTS tests coverage.
        "TestGenerated.cpp",
        "TestMemory.cpp",
        "TestTrivialModel.cpp",
        "TestUnknownDimensions.cpp",
        "TestValidateOperations.cpp",
        "TestValidation.cpp",
        "TestWrapper.cpp",
    ],
    shared_libs: [
        "libandroid",
        "libbase",
        "libhidlbase",
        "libhidltransport",
        "libhidlmemory",
        "liblog",
        "libtextclassifier_hash",
        "libutils",
        "android.hardware.neuralnetworks@1.0",
        "android.hardware.neuralnetworks@1.1",
        "android.hidl.allocator@1.0",
        "android.hidl.memory@1.0",
    ],
    header_libs: [
        "libneuralnetworks_generated_test_harness_headers",
    ],
    /* To enable address sanitizer, uncomment the block below
     * here and in ../../Android.bp. You will have to
     * do a full 'adb sync' after building. */
    /* sanitize: {
      address: true,
    }, */
}

cc_test {
    name: "NeuralNetworksTest_shared_partial",
    defaults: ["NeuralNetworksTest_defaults"],
    srcs: [
        "TestMain.cpp",
    ],
    cflags: [
        "-DNNTEST_ONLY_PUBLIC_API"
    ],
    shared_libs: [
        "libneuralnetworks",
        "libtextclassifier_hash",
    ],
}

cc_test {
    name: "NeuralNetworksTest_static",
    defaults: ["NeuralNetworksTest_defaults"],
    srcs: [
        "TestMain.cpp",

        "Bridge.cpp",
        // Tests that rely on non-public functionality (i.e., symbols
        // not exported from libneuralnetworks.so).
        "TestExecution.cpp",
        "TestMemoryInternal.cpp",
        "TestOpenmpSettings.cpp",
        "TestPartitioning.cpp",
        "TestPartitioningRandom.cpp",
    ],
    static_libs: [
        "libneuralnetworks",
        "libneuralnetworks_common",
        "libSampleDriver",
    ],
    shared_libs: [
        "libcutils",
    ],
    header_libs: [
        "libneuralnetworks_private_headers",
    ],
}