// Copyright (C) 2021 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_library {
    name: "net-tests-utils",
    srcs: [
        "devicetests/**/*.java",
        "devicetests/**/*.kt",
    ],
    defaults: [
        "framework-connectivity-test-defaults",
        "lib_mockito_extended"
    ],
    libs: [
        "androidx.annotation_annotation",
        "net-utils-device-common-bpf",  // TestBpfMap extends IBpfMap.
    ],
    static_libs: [
        "androidx.test.ext.junit",
        "kotlin-reflect",
        "libnanohttpd",
        "net-tests-utils-host-device-common",
        "net-utils-device-common",
        "net-utils-device-common-async",
        "net-utils-device-common-netlink",
        "net-utils-device-common-struct",
        "net-utils-device-common-wear",
        "modules-utils-build_system",
    ],
    lint: { strict_updatability_linting: true },
}

java_library {
    // Consider using net-tests-utils instead if writing device code.
    // That library has a lot more useful tools into it for users that
    // work on Android and includes this lib.
    name: "net-tests-utils-host-device-common",
    srcs: [
        "hostdevice/**/*.java",
        "hostdevice/**/*.kt",
    ],
    host_supported: true,
    visibility: [
        "//packages/modules/Connectivity/staticlibs/tests:__subpackages__",
        "//packages/modules/Connectivity/staticlibs/client-libs/tests:__subpackages__",
        "//packages/modules/Connectivity/tests/cts/hostside",
    ],
    // There are downstream branches using an old version of Kotlin
    // that used to reserve the right to make breaking changes to the
    // Result type and disallowed returning an instance of it.
    // Later versions allowed this and there was never a change,
    // so no matter the version returning Result is always fine,
    // but on sc-mainline-prod the compiler rejects it without
    // the following flag.
    kotlincflags: ["-Xallow-result-return-type"],
    libs: [
        "jsr305",
    ],
    static_libs: [
        "kotlin-test"
    ],
    lint: { strict_updatability_linting: true },
}

java_test_host {
    name: "net-tests-utils-host-common",
    srcs: [
        "host/**/*.java",
        "host/**/*.kt",
    ],
    libs: ["tradefed"],
    test_suites: ["ats", "device-tests", "general-tests", "cts", "mts-networking"],
    data: [":ConnectivityTestPreparer"],
}
