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

package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

java_defaults {
    name: "CtsNetTestCasesDefaults",
    defaults: [
        "cts_defaults",
        "framework-connectivity-test-defaults",
    ],

    // Include both the 32 and 64 bit versions
    compile_multilib: "both",

    libs: [
        "voip-common",
        "android.test.base",
    ],

    jni_libs: [
        "libcts_jni",
        "libnativedns_jni",
        "libnativemultinetwork_jni",
        "libnativehelper_compat_libc++",
    ],

    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
        ":ike-aes-xcbc",
    ],
    jarjar_rules: "jarjar-rules-shared.txt",
    static_libs: [
        "bouncycastle-unbundled",
        "FrameworksNetCommonTests",
        "core-tests-support",
        "cts-net-utils",
        "ctstestrunner-axt",
        "junit",
        "junit-params",
        "modules-utils-build",
        "net-utils-framework-common",
        "truth-prebuilt",
    ],

    // uncomment when b/13249961 is fixed
    // sdk_version: "current",
    platform_apis: true,
    required: ["ConnectivityChecker"],
}

// Networking CTS tests for development and release. These tests always target the platform SDK
// version, and are subject to all the restrictions appropriate to that version. Before SDK
// finalization, these tests have a min_sdk_version of 10000, and cannot be installed on release
// devices.
android_test {
    name: "CtsNetTestCases",
    defaults: ["CtsNetTestCasesDefaults", "NetworkStackNextEnableDefaults"],
    // TODO: CTS should not depend on the entirety of the networkstack code.
    static_libs: [
        "NetworkStackApiCurrentLib",
    ],
    test_suites: [
        "cts",
        "general-tests",
    ],
    test_config_template: "AndroidTestTemplate.xml",
}

// Networking CTS tests that target the latest released SDK. These tests can be installed on release
// devices at any point in the Android release cycle and are useful for qualifying mainline modules
// on release devices.
android_test {
    name: "CtsNetTestCasesLatestSdk",
    defaults: ["CtsNetTestCasesDefaults"],
    // TODO: CTS should not depend on the entirety of the networkstack code.
    static_libs: [
        "NetworkStackApiStableLib",
    ],
    jni_uses_sdk_apis: true,
    min_sdk_version: "29",
    target_sdk_version: "30",
    test_suites: [
        "general-tests",
        "mts-dnsresolver",
        "mts-networking",
        "mts-tethering",
        "mts-wifi",
    ],
    test_config_template: "AndroidTestTemplate.xml",
}
