Index: components/cronet/android/BUILD.gn |
diff --git a/components/cronet/android/BUILD.gn b/components/cronet/android/BUILD.gn |
index 725024e297a43e8c5c7280cbae71ad33bd4c765f..e5f74fef8eccb79e12e1687cdb9ae0e7fb37b00d 100644 |
--- a/components/cronet/android/BUILD.gn |
+++ b/components/cronet/android/BUILD.gn |
@@ -790,7 +790,9 @@ test("cronet_unittests") { |
} |
_package_dir = "$root_out_dir/cronet" |
+_test_package_dir = "$root_out_dir/cronet/test" |
_extract_cronet_jars_dir = "$target_gen_dir/cronet_jar_extract" |
+_extract_cronet_test_jars_dir = "$target_gen_dir/cronet_test_jar_extract" |
action("extract_cronet_jars") { |
# extract_from_jars.py deletes the target directory before extracting. |
@@ -849,6 +851,75 @@ action("repackage_extracted_jars") { |
] |
} |
+action("extract_cronet_test_jars") { |
+ # extract_from_jars.py deletes the target directory before extracting. |
+ script = "//components/cronet/tools/extract_from_jars.py" |
+ depfile = "$target_gen_dir/$target_name.d" |
+ testonly = true |
+ |
+ sources = [ |
+ "$root_out_dir/lib.java/base/base_java.jar", |
+ "$root_out_dir/lib.java/base/base_java_test_support.jar", |
+ "$root_out_dir/lib.java/components/cronet/android/cronet_javatests.jar", |
+ "$root_out_dir/lib.java/components/cronet/android/cronet_test_apk_java.jar", |
+ "$root_out_dir/lib.java/net/android/net_java.jar", |
+ "$root_out_dir/lib.java/net/android/net_java_test_support.jar", |
+ "$root_out_dir/lib.java/third_party/netty-tcnative/netty-tcnative_java.jar", |
+ "$root_out_dir/lib.java/url/url_java.jar", |
+ "//third_party/netty4/src/jar/all-in-one/netty-all-4.1.0.CR1-20160111.120759-50.jar", |
mef
2016/12/14 23:04:51
This seems very fragile.
I wonder whether there i
pauljensen
2016/12/15 04:08:34
Ya, I agree it's fragile. I showed it to Andrei l
mef
2016/12/15 18:06:34
Yeah, per our offline conversation, adding somethi
jbudorick
2016/12/15 18:19:34
We've used .build_config files for stuff like this
pauljensen
2016/12/15 19:12:52
I tried that and just got:
ninja: error: '../../co
|
+ ] |
+ |
+ _stamp_file = "$target_gen_dir/$target_name.stamp" |
+ outputs = [ |
+ _stamp_file, |
+ ] |
+ |
+ _rebased_sources = rebase_path(sources, root_build_dir) |
+ |
+ args = [ |
+ "--classes-dir", |
+ rebase_path(_extract_cronet_test_jars_dir, root_build_dir), |
+ "--jars=${_rebased_sources}", |
+ "--depfile", |
+ rebase_path(depfile, root_build_dir), |
+ "--stamp", |
+ rebase_path(_stamp_file, root_build_dir), |
+ ] |
+ |
+ deps = [ |
+ ":cronet_javatests", |
+ ":cronet_test_apk_java", |
+ "//base:base_java", |
+ "//base:base_java_test_support", |
+ "//net/android:net_java", |
+ "//net/android:net_java_test_support", |
+ "//third_party/netty-tcnative:netty-tcnative_java", |
+ "//third_party/netty4:netty_all_java", |
+ "//url:url_java", |
+ ] |
+} |
+ |
+action("repackage_extracted_test_jars") { |
+ _output_jar = "$_test_package_dir/cronet_tests_java.jar" |
+ testonly = true |
+ |
+ script = "//build/android/gyp/jar.py" |
+ outputs = [ |
+ _output_jar, |
+ ] |
+ |
+ args = [ |
+ "--classes-dir", |
+ rebase_path(_extract_cronet_test_jars_dir, root_build_dir), |
+ "--jar-path", |
+ rebase_path(_output_jar, root_build_dir), |
+ ] |
+ |
+ deps = [ |
+ ":extract_cronet_test_jars", |
+ ] |
+} |
+ |
template("jar_src") { |
action(target_name) { |
_rebased_src_search_dirs = |
@@ -1084,6 +1155,77 @@ copy("cronet_package_copy_native_lib_unstripped") { |
] |
} |
+copy("cronet_package_copy_native_test_lib") { |
mef
2016/12/14 23:04:51
I wonder whether we need stripped native test lib
pauljensen
2016/12/15 04:08:35
libcronet_tests.so unstripped is more than 100 MB
mef
2016/12/15 18:06:34
Acknowledged.
jbudorick
2016/12/15 18:19:34
This is something we're currently wrestling with f
|
+ testonly = true |
+ sources = [ |
+ "$root_out_dir/libcronet_tests.so", |
+ "$root_out_dir/libnetty-tcnative.so", |
+ ] |
+ outputs = [ |
+ "$_test_package_dir/libs/${android_app_abi}/{{source_file_part}}", |
+ ] |
+ deps = [ |
+ ":cronet_tests", |
+ "//third_party/netty-tcnative:netty-tcnative-so", |
+ ] |
+} |
+ |
+copy("cronet_package_copy_native_test_lib_unstripped") { |
+ testonly = true |
+ sources = [ |
+ "$root_out_dir/lib.unstripped/libcronet_tests.so", |
mef
2016/12/14 23:04:51
based on the comment above, would we ever need to
pauljensen
2016/12/15 04:08:35
The crash handler could probably symbolicate if we
mef
2016/12/15 18:06:34
Acknowledged.
|
+ "$root_out_dir/lib.unstripped/libnetty-tcnative.so", |
+ ] |
+ outputs = [ |
+ "$_test_package_dir/symbols/${android_app_abi}/{{source_file_part}}", |
+ ] |
+ deps = [ |
+ ":cronet_tests", |
+ "//third_party/netty-tcnative:netty-tcnative-so", |
+ ] |
+} |
+ |
+copy("cronet_package_copy_test_assets") { |
+ testonly = true |
+ sources = [ |
+ "test/assets", |
+ ] |
+ outputs = [ |
+ "$_test_package_dir/assets", |
+ ] |
+} |
+ |
+copy("cronet_package_copy_test_support_apks") { |
+ testonly = true |
+ sources = [ |
+ "$root_out_dir/apks/ChromiumNetTestSupport.apk", |
mef
2016/12/14 23:04:51
Interesting. Maybe add comment that this provides
pauljensen
2016/12/15 04:08:35
Done.
|
+ ] |
+ outputs = [ |
+ "$_test_package_dir/apks/${android_app_abi}/{{source_file_part}}", |
mef
2016/12/14 23:04:51
kudos for including abi into output path.
pauljensen
2016/12/15 04:08:34
Acknowledged.
|
+ ] |
+ deps = [ |
+ "//net/android:net_test_support_apk", |
+ ] |
+} |
+ |
+copy("cronet_package_copy_test_files") { |
+ testonly = true |
+ sources = [ |
+ "//net/data/ssl/certificates/quic_test.example.com.crt", |
+ "//net/data/ssl/certificates/quic_test.example.com.key", |
+ "//net/data/ssl/certificates/quic_test.example.com.key.pkcs8", |
+ "//net/data/ssl/certificates/quic_test.example.com.key.sct", |
+ ] |
+ outputs = [ |
+ "$_test_package_dir/assets/test_files/net/data/ssl/certificates/{{source_file_part}}", |
+ ] |
+ deps = [ |
+ # Not really dependent, but builds can fail if these two targets attempt |
+ # to create the "assets" subdirectory simultaneously. |
+ ":cronet_package_copy_test_assets", |
+ ] |
+} |
+ |
# Enforce that ARM Neon is not used when building for ARMv7 |
if (target_cpu == "arm" && arm_version == 7 && !arm_use_neon) { |
action("enforce_no_neon") { |
@@ -1109,6 +1251,9 @@ if (target_cpu == "arm" && arm_version == 7 && !arm_use_neon) { |
} |
group("cronet_package") { |
+ # Marked as testonly as it contains test-only targets too. |
+ testonly = true |
+ |
# Enforce that arm_use_neon==false when building for ARMv7 by |
# not including any deps in cronet_package target otherwise. |
if (!(target_cpu == "arm" && arm_version == 7) || !arm_use_neon) { |
@@ -1116,6 +1261,7 @@ group("cronet_package") { |
":cronet_package_copy", |
":cronet_package_copy_native_lib", |
":cronet_package_copy_native_lib_unstripped", |
+ ":cronet_test_package", |
":generate_javadoc", |
":generate_licenses", |
":jar_cronet_api_source", |
@@ -1130,3 +1276,20 @@ group("cronet_package") { |
} |
} |
} |
+ |
+group("cronet_test_package") { |
+ testonly = true |
+ |
+ # Enforce that arm_use_neon==false when building for ARMv7 by |
+ # not including any deps in cronet_package target otherwise. |
+ if (!(target_cpu == "arm" && arm_version == 7) || !arm_use_neon) { |
mef
2016/12/14 23:04:51
Do we really need to enforce it here?
What exactl
pauljensen
2016/12/15 04:08:34
No, removed.
|
+ deps = [ |
+ ":cronet_package_copy_native_test_lib", |
+ ":cronet_package_copy_native_test_lib_unstripped", |
+ ":cronet_package_copy_test_assets", |
+ ":cronet_package_copy_test_files", |
+ ":cronet_package_copy_test_support_apks", |
+ ":repackage_extracted_test_jars", |
+ ] |
+ } |
+} |