1// Copyright (C) 2021 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_team: "trendy_team_fwk_core_networking",
17    default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
20java_library {
21    name: "net-tests-utils",
22    srcs: [
23        "devicetests/**/*.java",
24        "devicetests/**/*.kt",
25    ],
26    defaults: [
27        "framework-connectivity-test-defaults",
28        "lib_mockito_extended",
29    ],
30    libs: [
31        "androidx.annotation_annotation",
32        "net-utils-device-common-bpf", // TestBpfMap extends IBpfMap.
33    ],
34    static_libs: [
35        "androidx.test.ext.junit",
36        "collector-device-lib",
37        "kotlin-reflect",
38        "libnanohttpd",
39        "net-tests-utils-host-device-common",
40        "net-utils-device-common",
41        "net-utils-device-common-async",
42        "net-utils-device-common-netlink",
43        "net-utils-device-common-struct",
44        "net-utils-device-common-struct-base",
45        "net-utils-device-common-wear",
46        "modules-utils-build_system",
47    ],
48    lint: {
49        strict_updatability_linting: true,
50    },
51}
52
53java_library {
54    // Consider using net-tests-utils instead if writing device code.
55    // That library has a lot more useful tools into it for users that
56    // work on Android and includes this lib.
57    name: "net-tests-utils-host-device-common",
58    srcs: [
59        "hostdevice/**/*.java",
60        "hostdevice/**/*.kt",
61    ],
62    host_supported: true,
63    visibility: [
64        "//packages/modules/Connectivity/staticlibs/tests:__subpackages__",
65        "//packages/modules/Connectivity/staticlibs/client-libs/tests:__subpackages__",
66        "//packages/modules/Connectivity/tests/cts/hostside",
67    ],
68    // There are downstream branches using an old version of Kotlin
69    // that used to reserve the right to make breaking changes to the
70    // Result type and disallowed returning an instance of it.
71    // Later versions allowed this and there was never a change,
72    // so no matter the version returning Result is always fine,
73    // but on sc-mainline-prod the compiler rejects it without
74    // the following flag.
75    kotlincflags: ["-Xallow-result-return-type"],
76    libs: [
77        "jsr305",
78    ],
79    static_libs: [
80        "kotlin-test",
81    ],
82    lint: {
83        strict_updatability_linting: true,
84    },
85}
86
87java_test_host {
88    name: "net-tests-utils-host-common",
89    srcs: [
90        "host/java/**/*.java",
91        "host/java/**/*.kt",
92    ],
93    libs: ["tradefed"],
94    test_suites: [
95        "ats",
96        "device-tests",
97        "general-tests",
98        "cts",
99        "mts-networking",
100        "mts-tethering",
101        "mcts-tethering",
102    ],
103    device_common_data: [":ConnectivityTestPreparer"],
104}
105
106python_library_host {
107    name: "net-tests-utils-host-python-common",
108    srcs: [
109        "host/python/*.py",
110    ],
111    pkg_path: "net_tests_utils",
112}
113