| # Copyright 2024 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/android/rules.gni") |
| import("//testing/test.gni") |
| |
| template("cronet_renamed_jar") { |
| dist_jar(target_name) { |
| forward_variables_from(invoker, TESTONLY_AND_VISIBILITY) |
| forward_variables_from(invoker, "*", TESTONLY_AND_VISIBILITY) |
| supports_android = true |
| requires_android = true |
| |
| if (!defined(invoker.output)) { |
| output = "$target_out_dir/$target_name.distjar.jar" |
| } |
| |
| jar_excluded_patterns = [ |
| "*/*GEN_JNI.class", |
| "META-INF/*", |
| ] |
| renaming_rules = [ |
| "org.jni_zero.**->internal.org.jni_zero", |
| # Note that this renaming_rule is different from the one declared |
| # in repackage_jars template in android/BUILD.gn this is because if |
| # we jarjar the `org.chromium.build` for tests then we'll start jarjaring |
| # the test runner which is org.chromium.build.gtest_apk.NativeTestInstrumentationTestRunner. |
| # this will result in the tests failing immediately / not even listed. |
| ] |
| } |
| } |
| |
| # Drop in replacement for the instrumentation_test_apk() template that renames |
| # java classes in the same way the classes shipped in cronet jars are renamed. |
| template("cronet_instrumentation_test_apk") { |
| _single_jar_target_name = "${target_name}_single_jar_java" |
| cronet_renamed_jar(_single_jar_target_name) { |
| forward_variables_from(invoker, TESTONLY_AND_VISIBILITY) |
| |
| # Implicit java deps that are added by the test template that might need to |
| # be renamed. |
| deps = |
| invoker.deps + [ "//testing/android/instrumentation:test_runner_java" ] |
| testonly = true |
| } |
| |
| instrumentation_test_apk(target_name) { |
| forward_variables_from(invoker, TESTONLY_AND_VISIBILITY) |
| forward_variables_from(invoker, "*", TESTONLY_AND_VISIBILITY) |
| deps += [ ":$_single_jar_target_name" ] |
| } |
| } |
| |
| # Drop in replacement for the test() template that renames java classes in the |
| # same way the classes shipped in cronet jars are renamed. |
| template("cronet_test") { |
| _single_jar_target_name = "${target_name}_single_jar_java" |
| cronet_renamed_jar(_single_jar_target_name) { |
| forward_variables_from(invoker, TESTONLY_AND_VISIBILITY) |
| |
| # Implicit java deps that are added by the test template that might need to |
| # be renamed. |
| deps = invoker.deps + [ |
| "//base/test:test_support_java", |
| "//testing/android/native_test:native_test_java", |
| ] |
| testonly = true |
| } |
| |
| test(target_name) { |
| forward_variables_from(invoker, TESTONLY_AND_VISIBILITY) |
| forward_variables_from(invoker, "*", TESTONLY_AND_VISIBILITY) |
| deps += [ ":$_single_jar_target_name" ] |
| } |
| } |
| |
| # cronet_test defaults. |
| # Should be kept in sync with set_defaults("test") in //testing/test.gni |
| set_defaults("cronet_test") { |
| configs = default_shared_library_configs |
| configs -= [ "//build/config/android:hide_all_but_jni_onload" ] |
| configs += [ "//build/config/android:hide_all_but_jni" ] |
| } |