// Copyright (C) 2019 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: "CtsTetheringTestDefaults",
    defaults: ["cts_defaults"],

    libs: [
        "android.test.base",
    ],

    srcs: [
        "src/**/*.java",
    ],

    static_libs: [
        "TetheringCommonTests",
        "compatibility-device-util-axt",
        "cts-net-utils",
        "net-tests-utils",
        "ctstestrunner-axt",
        "junit",
        "junit-params",
    ],

    jni_libs: [
        // For mockito extended
        "libdexmakerjvmtiagent",
        "libstaticjvmtiagent",
    ],

    // Change to system current when TetheringManager move to bootclass path.
    platform_apis: true,
}

// Tethering CTS tests that target the latest released SDK. These tests can be installed on release
// devices which has equal or lowner sdk version than target sdk and are useful for qualifying
// mainline modules on release devices.
android_test {
    name: "CtsTetheringTestLatestSdk",
    defaults: ["CtsTetheringTestDefaults"],

    min_sdk_version: "30",
    target_sdk_version: "30",

    static_libs: [
        "TetheringIntegrationTestsLatestSdkLib",
    ],

    test_suites: [
        "general-tests",
        "mts-tethering",
    ],

    test_config_template: "AndroidTestTemplate.xml",

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

// Tethering 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: "CtsTetheringTest",
    defaults: ["CtsTetheringTestDefaults"],

    static_libs: [
        "TetheringIntegrationTestsLib",
    ],

    // Tag this module as a cts test artifact
    test_suites: [
        "cts",
        "general-tests",
    ],

    test_config_template: "AndroidTestTemplate.xml",

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