blob: 5fee440e9d6e0c445534b65662efc905bbae35a7 [file] [log] [blame]
// Copyright (C) 2023 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.
// This is manually maintained and automatically included into the Android.bp by the gn2bp script.
license {
name: "external_cronet_license",
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
"SPDX-license-identifier-BSD-3-Clause",
"SPDX-license-identifier-BSD-Source-Code",
"SPDX-license-identifier-BSD-2-Clause",
"SPDX-license-identifier-BSD-4-Clause",
"SPDX-license-identifier-BSL-1.0",
"SPDX-license-identifier-ICU",
"SPDX-license-identifier-ISC",
"SPDX-license-identifier-MIT",
"SPDX-license-identifier-MPL",
"SPDX-license-identifier-MPL-1.1",
"SPDX-license-identifier-MPL-2.0",
"SPDX-license-identifier-NCSA",
// "SPDX-license-identifier-GPL-2.0-with-autoconf-exception", // ICU TODO(aymanm): Reapply those once aosp/2470343 is merged
// "SPDX-license-identifier-GPL-3.0-with-autoconf-exception", // ICU TODO(aymanm): Reapply those once aosp/2470343 is merged
"SPDX-license-identifier-OpenSSL",
"SPDX-license-identifier-Unicode-DFS-2016",
"legacy_unencumbered",
],
license_text: [
"LICENSE",
],
}
java_library {
// Don't change the name of the module.
name: "cronet_aml_api_java",
srcs: [
":cronet_aml_api_sources",
],
libs: [
"androidx.annotation_annotation",
"framework-annotations-lib",
"framework-connectivity.stubs.module_lib",
],
sdk_version: "module_current",
visibility: [
"//packages/modules/Connectivity:__subpackages__",
],
}
// ------------------------------ NATIVE TEST TARGETS --------------------------------------------
// jni_proxy_natives_defaults should only be applied to the "top-level" target (with respect to JNI
// dependencies). Intermediate targets require an intermediate GEN_JNI to compile (so they need the
// plugin without the flags). The intermediate GEN_JNI will eventually be overwritten by the GEN_JNI
// produced by the jni_registration_generator genrule target.
java_defaults {
name: "jni_proxy_natives_defaults",
plugins: [
"cronet_aml_java_jni_annotation_preprocessor",
],
javacflags: [
"-Aorg.chromium.chrome.skipGenJni",
],
}
// Similar to jni_proxy_natives_default, only a single jni_registration_generator target can be used
// per dependency tree. It must include all dependent sources that contain JNI annotations
// (non-exclusive).
genrule_defaults {
name: "jni_registration_generator_defaults",
cmd: "current_dir=`basename \\`pwd\\``; " +
"for f in $(in); " +
"do " +
"echo \"../$$current_dir/$$f\" >> $(genDir)/java.sources; " +
"done; " +
"python3 $(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
"$(genDir)/components/cronet/android/cronet_tests_jni_registration.srcjar " +
"--sources-files " +
"$(genDir)/java.sources " +
"--include-test-only " +
"--use-proxy-hash " +
"--enable-proxy-mocks",
out: [
"components/cronet/android/cronet_tests_jni_registration.srcjar",
],
tool_files: [
"base/android/jni_generator/jni_generator.py",
"base/android/jni_generator/jni_registration_generator.py",
"build/action_helpers.py",
"build/android/gyp/util/__init__.py",
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
"build/zip_helpers.py",
],
}
filegroup {
name: "cronet_native_unittests_defaults_srcs",
srcs: [
"base/test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java",
"build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestInstrumentationTestRunner.java",
"build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestIntent.java",
"build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusIntent.java",
"build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusReceiver.java",
"testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java",
"testing/android/native_test/java/src/org/chromium/native_test/SignalMaskInfo.java",
"testing/android/native_test/java/src/org/chromium/native_test/NativeTestApplication.java",
"testing/android/native_test/java/src/org/chromium/native_test/NativeUnitTest.java",
"testing/android/native_test/java/src/org/chromium/native_test/NativeUnitTestActivity.java",
"testing/android/native_test/java/src/org/chromium/native_test/NativeUnitTestNativeActivity.java",
"testing/android/reporter/java/src/org/chromium/test/reporter/TestStatusReporter.java",
],
}
java_defaults {
name: "cronet_native_unittests_defaults",
defaults: [
"mts-target-sdk-version-current",
],
compile_multilib: "both",
min_sdk_version: "31", // b/270049141
srcs: [
":cronet_native_unittests_defaults_srcs",
],
static_libs: [
"androidx.annotation_annotation",
"junit",
],
test_suites: [
"general-tests",
"mts-tethering",
],
}
filegroup {
name: "cronet_for_testing_net_java_srcs",
srcs: [
"net/test/android/javatests/src/org/chromium/net/AndroidNetworkLibraryTestUtil.java",
"net/test/android/javatests/src/org/chromium/net/test/util/CertTestUtil.java",
"net/test/android/javatests/src/org/chromium/net/test/util/NetworkChangeNotifierTestUtil.java",
"net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java",
"net/test/android/javatests/src/org/chromium/net/test/util/WebServer.java",
"net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java",
"net/test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticatorService.java",
"net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerImpl.java",
"net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerService.java",
"base/test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java",
"net/android/javatests/src/org/chromium/net/AndroidKeyStoreTestUtil.java",
"net/android/javatests/src/org/chromium/net/AndroidProxyConfigServiceTestUtil.java",
"net/test/android/javatests/src/org/chromium/net/test/IConnectionListener.aidl",
"net/test/android/javatests/src/org/chromium/net/test/IEmbeddedTestServerImpl.aidl",
],
}
java_library {
name: "cronet_for_testing_net_java",
srcs: [
":cronet_for_testing_net_java_srcs",
],
aidl: {
include_dirs: [
"frameworks/base/core/java/",
],
local_include_dirs: [
"net/test/android/javatests/src",
],
},
static_libs: [
"cronet_aml_java__testing",
"junit",
"androidx.annotation_annotation",
"androidx.annotation_annotation-experimental-nodeps",
],
plugins: [
"cronet_aml_java_jni_annotation_preprocessor",
],
}
filegroup {
name: "net_unittests_data",
srcs: [
"net/data/**/*",
"net/third_party/nist-pkits/**/*",
"net/third_party/quiche/src/quiche/common/platform/api/testdir/**/*"
],
}
genrule {
name: "cronet_tester_app_jni",
defaults: [
"cronet_aml_components_cronet_android_cronet_jni_registration__java__testing_defaults",
],
srcs: [
":cronet_native_unittests_defaults_srcs",
],
}
android_test_helper_app {
name: "cronet_tester_app",
defaults: [
"cronet_native_unittests_defaults",
"jni_proxy_natives_defaults",
],
srcs: [":cronet_tester_app_jni"],
manifest: "test_runner/AndroidManifest.xml",
jni_libs: [
"cronet_aml_components_cronet_android_cronet_unittests_android__library__testing",
],
static_libs: ["cronet_aml_java__testing"],
}
genrule {
name: "cronet_net_tester_app_jni",
defaults: [
"cronet_aml_components_cronet_android_cronet_jni_registration__java__testing_defaults",
],
srcs: [
":cronet_for_testing_net_java_srcs",
":cronet_native_unittests_defaults_srcs",
],
}
android_test_helper_app {
name: "cronet_net_tester_app",
defaults: [
"cronet_native_unittests_defaults",
"jni_proxy_natives_defaults",
],
manifest: "test_runner/AndroidNetManifest.xml",
srcs: [":cronet_net_tester_app_jni"],
jni_libs: [
"cronet_aml_net_net_unittests__library__testing",
],
static_libs: ["cronet_for_testing_net_java"],
resource_dirs : [
"net/android/unittest_support/res",
]
}
// ------------------------------ JAVA TEST TARGETS --------------------------------------------
filegroup {
name: "cronet_aml_javatests_sources",
srcs: [
":cronet_aml_java_apihelpers",
":cronet_base_net_javatest_utils",
"components/cronet/android/test/javatests/**/UrlResponseInfoTest.java",
"components/cronet/android/test/javatests/**/BidirectionalStreamQuicTest.java",
"components/cronet/android/test/javatests/**/BrotliTest.java",
"components/cronet/android/test/javatests/**/CronetLoggerTestRule.java",
"components/cronet/android/test/javatests/**/CronetLoggerTest.java",
"components/cronet/android/test/javatests/**/CronetManifestTest.java",
"components/cronet/android/test/javatests/**/CronetStressTest.java",
"components/cronet/android/test/javatests/**/CronetTestRule.java",
"components/cronet/android/test/javatests/**/CronetTestRuleTest.java",
"components/cronet/android/test/javatests/**/CronetUploadTest.java",
"components/cronet/android/test/javatests/**/CronetUrlRequestTest.java",
"components/cronet/android/test/javatests/**/CronetUrlRequestContextTest.java",
"components/cronet/android/test/javatests/**/DiskStorageTest.java",
"components/cronet/android/test/javatests/**/ExperimentalOptionsTest.java",
"components/cronet/android/test/javatests/**/GetStatusTest.java",
"components/cronet/android/test/javatests/**/Http2TestServer.java",
"components/cronet/android/test/javatests/**/Test*.java",
"components/cronet/android/test/javatests/**/MetricsTestUtil.java",
"components/cronet/android/test/javatests/**/NetworkChangeNotifierTest.java",
"components/cronet/android/test/javatests/**/NQETest.java",
"components/cronet/android/test/javatests/**/RequestFinishedInfoTest.java",
"components/cronet/android/test/javatests/**/QuicTest.java",
"components/cronet/android/test/javatests/**/urlconnection/*.java",
],
visibility: [
"//packages/modules/Connectivity:__subpackages__",
],
}
filegroup {
name: "cronet_base_net_javatest_utils",
srcs: [
"base/test/android/javatests/**/CriteriaNotSatisfiedException.java",
"base/test/android/javatests/**/Criteria.java",
"base/test/android/javatests/**/CriteriaHelper.java",
"base/test/android/javatests/**/DisabledTest.java",
"base/test/android/javatests/**/HistogramWatcher.java",
"base/test/android/javatests/**/LooperUtils.java",
"base/test/android/javatests/**/MetricsUtils.java",
"base/test/android/javatests/**/PackageManagerWrapper.java",
"base/test/android/javatests/**/ScalableTimeout.java",
"base/test/android/javatests/**/TestFileUtil.java",
"base/test/android/javatests/**/TimeoutTimer.java",
"base/test/android/javatests/**/UrlUtils.java",
"net/url_request/FailurePhase.java",
]
}
filegroup {
name: "cronet_aml_java_apihelpers",
srcs: [
"components/cronet/android/**/http/apihelpers/UploadDataProviders.java"
]
}
// TODO: merge cronet_testserver_utils_srcs with cronet_aml_javatests_sources.
filegroup {
name: "cronet_testserver_utils_srcs",
srcs: [
":cronet_base_net_javatest_utils",
"components/cronet/android/test/**/CronetTestUtil.java",
"components/cronet/android/test/**/NativeTestServer.java",
"components/cronet/android/test/**/TestFilesInstaller.java",
"components/cronet/android/test/**/TestUploadDataStreamHandler.java",
"components/cronet/android/test/**/QuicTestServer.java",
"components/cronet/android/test/**/MockCertVerifier.java",
"components/cronet/android/test/**/MockUrlRequestJobFactory.java",
],
}
genrule {
name: "cronet_java_tests_jni",
defaults: ["jni_registration_generator_defaults"],
srcs: [
":cronet_aml_javatests_sources",
":cronet_testserver_utils_srcs",
],
}
android_library {
name: "cronet_java_tests",
defaults: ["jni_proxy_natives_defaults"],
asset_dirs: [
"components/cronet/testing/test_server/data/",
"net/data/ssl/certificates/",
],
manifest: "components/cronet/android/test/src/org/chromium/net/AndroidManifest.xml",
srcs: [
":cronet_aml_javatests_sources",
":cronet_java_tests_jni",
":cronet_testserver_utils_srcs",
],
sdk_version: "module_current",
min_sdk_version: "30",
static_libs: [
"androidx.test.ext.junit",
"androidx.test.rules",
"cronet_aml_java__testing",
"guava",
"hamcrest-library",
"junit",
"truth",
],
libs: [
"android.test.base",
"cronet_aml_api_java",
"framework-connectivity",
"framework-connectivity-pre-jarjar",
// android.net.TrafficStats apis
"framework-connectivity-t",
"guava",
],
lint: { test: true },
visibility: [
"//packages/modules/Connectivity:__subpackages__",
],
}