[go: nahoru, domu]

[ios] Add support for cc_unittests

Build bundle for cc_unittests and fix scheme generation in
all.xcodeproj.

Bug: 1416306
Change-Id: I9116d58c9ca5b35b2c63f9bcf924c0618a38136f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4250621
Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
Reviewed-by: Ian Vollick <vollick@chromium.org>
Commit-Queue: Tiago Vignatti <tvignatti@igalia.com>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1106226}
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index af39d86..48def44ab 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -11,6 +11,10 @@
   import("//build/config/android/rules.gni")
 }
 
+if (is_ios) {
+  import("//build/config/ios/bundle_data_from_filelist.gni")
+}
+
 cc_component("cc") {
   sources = [
     "benchmarks/benchmark_instrumentation.cc",
@@ -670,6 +674,13 @@
   }
 }
 
+if (is_ios) {
+  bundle_data_from_filelist("unit_tests_bundle_data") {
+    testonly = true
+    filelist_name = "unit_tests_bundle_data.filelist"
+  }
+}
+
 cc_test("cc_unittests") {
   use_xvfb = use_xvfb_in_this_config
 
@@ -931,6 +942,10 @@
       "//gpu/vulkan/init",
     ]
   }
+
+  if (is_ios) {
+    public_deps = [ ":unit_tests_bundle_data" ]
+  }
 }
 
 cc_test("cc_perftests") {
diff --git a/cc/OWNERS b/cc/OWNERS
index cac07ec..2e9f6007 100644
--- a/cc/OWNERS
+++ b/cc/OWNERS
@@ -60,3 +60,6 @@
 # general
 vmpstr@chromium.org
 khushalsagar@chromium.org
+
+# Anyone can update the unit test bundle data filelist.
+per-file unit_tests_bundle_data.filelist=*
\ No newline at end of file
diff --git a/cc/PRESUBMIT.py b/cc/PRESUBMIT.py
index 45e213c..a751cd31 100644
--- a/cc/PRESUBMIT.py
+++ b/cc/PRESUBMIT.py
@@ -10,6 +10,8 @@
 
 import re
 
+PRESUBMIT_VERSION = '2.0.0'
+
 USE_PYTHON3 = True
 CC_SOURCE_FILES=(r'^cc[\\/].*\.(cc|h)$',)
 
@@ -21,6 +23,19 @@
   return input_api.canned_checks.CheckChangeLintsClean(
       input_api, output_api, source_filter, lint_filters=[], verbose_level=1)
 
+def CheckChangeInBundle(input_api, output_api):
+    import sys
+    old_sys_path = sys.path[:]
+    results = []
+    try:
+        sys.path.append(input_api.change.RepositoryRoot())
+        from build.ios import presubmit_support
+        results += presubmit_support.CheckBundleData(input_api, output_api,
+                                                     'unit_tests_bundle_data')
+    finally:
+        sys.path = old_sys_path
+    return results
+
 def CheckAsserts(input_api, output_api, allowlist=CC_SOURCE_FILES,
                  denylist=None):
   denylist = tuple(denylist or input_api.DEFAULT_FILES_TO_SKIP)
@@ -284,6 +299,7 @@
   results += CheckStdAbs(input_api, output_api)
   results += CheckPassByValue(input_api, output_api)
   results += CheckChangeLintsClean(input_api, output_api)
+  results += CheckChangeInBundle(input_api, output_api)
   results += CheckTodos(input_api, output_api)
   results += CheckDoubleAngles(input_api, output_api)
   results += CheckNamespace(input_api, output_api)
diff --git a/cc/unit_tests_bundle_data.filelist b/cc/unit_tests_bundle_data.filelist
new file mode 100644
index 0000000..e41ddc6
--- /dev/null
+++ b/cc/unit_tests_bundle_data.filelist
@@ -0,0 +1,210 @@
+# Copyright 2023 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# NOTE: this file is generated by build/ios/update_bundle_filelist.py
+#       If it requires updating, you should get a presubmit error with
+#       instructions on how to regenerate. Otherwise, do not edit.
+//cc/test/data/lottie/animation_with_2_text_nodes.json
+//components/viz/test/data/10_10_layer_tree.json
+//components/viz/test/data/16_color_rects.png
+//components/viz/test/data/anti_aliasing_dawn.png
+//components/viz/test/data/anti_aliasing_perspective_dawn.png
+//components/viz/test/data/anti_aliasing_perspective_skia.png
+//components/viz/test/data/anti_aliasing_skia.png
+//components/viz/test/data/axis_aligned.png
+//components/viz/test/data/backdrop_filter.png
+//components/viz/test/data/backdrop_filter_blur_off_axis_skia_dawn.png
+//components/viz/test/data/backdrop_filter_blur_off_axis_skia_gl.png
+//components/viz/test/data/backdrop_filter_blur_off_axis_skia_vk.png
+//components/viz/test/data/backdrop_filter_blur_outsets.png
+//components/viz/test/data/backdrop_filter_blur_radius_skia_dawn.png
+//components/viz/test/data/backdrop_filter_blur_radius_skia_gl.png
+//components/viz/test/data/backdrop_filter_blur_radius_skia_vk.png
+//components/viz/test/data/backdrop_filter_blur_rounded.png
+//components/viz/test/data/backdrop_filter_blur_rounded_sw.png
+//components/viz/test/data/backdrop_filter_blur_skia_dawn.png
+//components/viz/test/data/backdrop_filter_blur_skia_gl.png
+//components/viz/test/data/backdrop_filter_blur_skia_vk.png
+//components/viz/test/data/backdrop_filter_blur_sw.png
+//components/viz/test/data/backdrop_filter_bounds_with_children.png
+//components/viz/test/data/backdrop_filter_invalid.png
+//components/viz/test/data/backdrop_filter_masked.png
+//components/viz/test/data/backdrop_filter_masked_sw.png
+//components/viz/test/data/backdrop_filter_on_scaled_layer_skia_dawn.png
+//components/viz/test/data/backdrop_filter_on_scaled_layer_skia_gl.png
+//components/viz/test/data/backdrop_filter_on_scaled_layer_skia_vk.png
+//components/viz/test/data/backdrop_filter_on_scaled_layer_sw.png
+//components/viz/test/data/backdrop_filter_rotated_skia_dawn.png
+//components/viz/test/data/backdrop_filter_rotated_skia_gl.png
+//components/viz/test/data/backdrop_filter_rotated_skia_vk.png
+//components/viz/test/data/backdrop_filter_rotated_sw.png
+//components/viz/test/data/black.png
+//components/viz/test/data/blue_yellow.png
+//components/viz/test/data/blue_yellow_alpha.png
+//components/viz/test/data/blue_yellow_alpha_translate.png
+//components/viz/test/data/blue_yellow_anti_aliasing.png
+//components/viz/test/data/blue_yellow_filter_chain.png
+//components/viz/test/data/blue_yellow_flipped.png
+//components/viz/test/data/blue_yellow_flipped_dither.png
+//components/viz/test/data/blue_yellow_partial_flipped.png
+//components/viz/test/data/blue_yellow_partial_flipped_dither.png
+//components/viz/test/data/blur_filter_with_clip_skia_dawn.png
+//components/viz/test/data/blur_filter_with_clip_skia_gl.png
+//components/viz/test/data/blur_filter_with_clip_skia_vk.png
+//components/viz/test/data/blur_filter_with_clip_sw.png
+//components/viz/test/data/dark_grey.png
+//components/viz/test/data/delegated_ink_one_trail.png
+//components/viz/test/data/delegated_ink_pointer_id_1.png
+//components/viz/test/data/delegated_ink_pointer_id_2.png
+//components/viz/test/data/delegated_ink_trail.png
+//components/viz/test/data/delegated_ink_trail_clipped_by_presentation_area.png
+//components/viz/test/data/delegated_ink_trail_no_prediction.png
+//components/viz/test/data/delegated_ink_trail_on_batched_quads.png
+//components/viz/test/data/delegated_ink_two_trails_first.png
+//components/viz/test/data/delegated_ink_two_trails_second.png
+//components/viz/test/data/dense_layer_tree.json
+//components/viz/test/data/enlarged_texture_on_crop_offset.png
+//components/viz/test/data/enlarged_texture_on_threshold.png
+//components/viz/test/data/filter_with_giant_crop_rect.png
+//components/viz/test/data/force_anti_aliasing_off.png
+//components/viz/test/data/four_blue_green_checkers.png
+//components/viz/test/data/four_blue_green_checkers_linear.png
+//components/viz/test/data/green.png
+//components/viz/test/data/green_alpha.png
+//components/viz/test/data/green_alpha_vertex_opacity.png
+//components/viz/test/data/green_small.png
+//components/viz/test/data/green_small_with_blue_corner.png
+//components/viz/test/data/green_with_blue_corner.png
+//components/viz/test/data/half_of_one_of_16_color_rects.png
+//components/viz/test/data/heavy_layer_tree.json
+//components/viz/test/data/image_mask_of_layer.png
+//components/viz/test/data/image_mask_with_effect.png
+//components/viz/test/data/inset_bottom_right.png
+//components/viz/test/data/inset_top_left.png
+//components/viz/test/data/intersecting_blue_green.png
+//components/viz/test/data/intersecting_blue_green_squares.png
+//components/viz/test/data/intersecting_blue_green_squares_video.png
+//components/viz/test/data/intersecting_flipped_blue_green_half_size_rectangles.png
+//components/viz/test/data/intersecting_light_dark_squares_video.png
+//components/viz/test/data/intersecting_non_flipped_blue_green_half_size_rectangles.png
+//components/viz/test/data/invert_backdrop_filter_1x.png
+//components/viz/test/data/invert_backdrop_filter_1x_sw.png
+//components/viz/test/data/invert_backdrop_filter_2x.png
+//components/viz/test/data/invert_backdrop_filter_2x_sw.png
+//components/viz/test/data/layer_sort_cubes.json
+//components/viz/test/data/layer_sort_rubik.json
+//components/viz/test/data/linear_gradient_render_pass.png
+//components/viz/test/data/long_scrollable_page.json
+//components/viz/test/data/mask_as_blending_circle.png
+//components/viz/test/data/mask_as_blending_circle_underflow.png
+//components/viz/test/data/mask_as_blending_noop.png
+//components/viz/test/data/mask_as_blending_rotated_circle.png
+//components/viz/test/data/mask_as_blending_rotated_circle_gl.png
+//components/viz/test/data/mask_as_blending_rotated_circle_underflow.png
+//components/viz/test/data/mask_as_blending_rotated_circle_underflow_gl.png
+//components/viz/test/data/mask_bottom_right.png
+//components/viz/test/data/mask_middle.png
+//components/viz/test/data/mask_of_backdrop_filter.png
+//components/viz/test/data/mask_of_backdrop_filter_and_blend_skia_gl.png
+//components/viz/test/data/mask_of_backdrop_filter_and_blend_skia_vk.png
+//components/viz/test/data/mask_of_backdrop_filter_and_blend_sw.png
+//components/viz/test/data/mask_of_backdrop_filter_gpu.png
+//components/viz/test/data/mask_of_clipped_layer.png
+//components/viz/test/data/mask_of_layer.png
+//components/viz/test/data/mask_of_layer_with_blend.png
+//components/viz/test/data/mask_with_effect.png
+//components/viz/test/data/mask_with_effect_different_size.png
+//components/viz/test/data/mask_with_effect_no_content.png
+//components/viz/test/data/mask_with_non_exact_texture_size.png
+//components/viz/test/data/mirror_layer.png
+//components/viz/test/data/multi_linear_gradient_render_pass.png
+//components/viz/test/data/offset_backdrop_filter_1x.png
+//components/viz/test/data/offset_backdrop_filter_1x_sw.png
+//components/viz/test/data/offset_backdrop_filter_2x.png
+//components/viz/test/data/offset_backdrop_filter_2x_sw.png
+//components/viz/test/data/offset_inset_top_left.png
+//components/viz/test/data/one_of_16_color_rects.png
+//components/viz/test/data/oop_draw_image.png
+//components/viz/test/data/oop_draw_image_both_color_space.png
+//components/viz/test/data/oop_draw_image_matrix.png
+//components/viz/test/data/oop_draw_image_scaled.png
+//components/viz/test/data/oop_draw_image_shader_scaled.png
+//components/viz/test/data/oop_draw_image_source_color_space.png
+//components/viz/test/data/oop_draw_record_shader.png
+//components/viz/test/data/oop_draw_record_shader_tiled.png
+//components/viz/test/data/oop_draw_rect_playback_rect.png
+//components/viz/test/data/oop_draw_rect_query.png
+//components/viz/test/data/oop_draw_rect_scale_transform.png
+//components/viz/test/data/oop_image_target_color_space.png
+//components/viz/test/data/oop_path.png
+//components/viz/test/data/oop_record_shader_max_texture_size.png
+//components/viz/test/data/overlay_scrollbar_scaled_down.png
+//components/viz/test/data/overlay_scrollbar_scaled_up.png
+//components/viz/test/data/primary_colors.png
+//components/viz/test/data/primary_colors_icced.png
+//components/viz/test/data/primary_colors_sRGB_in_AdobeRGB.png
+//components/viz/test/data/rotated_drop_shadow_filter_skia_dawn.png
+//components/viz/test/data/rotated_drop_shadow_filter_skia_gl.png
+//components/viz/test/data/rotated_drop_shadow_filter_skia_vk.png
+//components/viz/test/data/rotated_drop_shadow_filter_sw.png
+//components/viz/test/data/rotated_filter_skia_dawn.png
+//components/viz/test/data/rotated_filter_skia_gl.png
+//components/viz/test/data/rotated_filter_skia_vk.png
+//components/viz/test/data/rotated_filter_sw.png
+//components/viz/test/data/rounded_corner_multi_quad.png
+//components/viz/test/data/rounded_corner_multi_radii.png
+//components/viz/test/data/rounded_corner_render_pass_dawn.png
+//components/viz/test/data/rounded_corner_render_pass_skia.png
+//components/viz/test/data/rounded_corner_render_pass_software.png
+//components/viz/test/data/rounded_corner_simple.png
+//components/viz/test/data/scaled_mask_with_effect_skia_gl.png
+//components/viz/test/data/scaled_mask_with_effect_skia_vk.png
+//components/viz/test/data/scaled_mask_with_effect_sw.png
+//components/viz/test/data/scaled_render_surface_layer_skia_dawn.png
+//components/viz/test/data/scaled_render_surface_layer_skia_gl.png
+//components/viz/test/data/scaled_render_surface_layer_skia_vk.png
+//components/viz/test/data/scaled_render_surface_layer_sw.png
+//components/viz/test/data/solid_color_empty_mask_with_effect.png
+//components/viz/test/data/spiral.png
+//components/viz/test/data/spiral_64_scale.png
+//components/viz/test/data/spiral_64_scale_vk.png
+//components/viz/test/data/spiral_double_scale.png
+//components/viz/test/data/srgb_green_in_p3.png
+//components/viz/test/data/temperature_brown.png
+//components/viz/test/data/temperature_brown_non_root.png
+//components/viz/test/data/touch_region_heavy.json
+//components/viz/test/data/touch_region_light.json
+//components/viz/test/data/translated_blue_green_alpha.png
+//components/viz/test/data/translucent_quads_no_aa.png
+//components/viz/test/data/translucent_rectangles.png
+//components/viz/test/data/trilinear_filtering.png
+//components/viz/test/data/trilinear_filtering_skia_vk.png
+//components/viz/test/data/video_capture/overlay_clips_ll.png
+//components/viz/test/data/video_capture/overlay_clips_ll_contentscaled.png
+//components/viz/test/data/video_capture/overlay_clips_ll_subregion.png
+//components/viz/test/data/video_capture/overlay_clips_lr.png
+//components/viz/test/data/video_capture/overlay_clips_lr_contentscaled.png
+//components/viz/test/data/video_capture/overlay_clips_lr_subregion.png
+//components/viz/test/data/video_capture/overlay_clips_ul.png
+//components/viz/test/data/video_capture/overlay_clips_ul_contentscaled.png
+//components/viz/test/data/video_capture/overlay_clips_ul_subregion.png
+//components/viz/test/data/video_capture/overlay_clips_ur.png
+//components/viz/test/data/video_capture/overlay_clips_ur_contentscaled.png
+//components/viz/test/data/video_capture/overlay_clips_ur_subregion.png
+//components/viz/test/data/video_capture/overlay_full_cover.png
+//components/viz/test/data/video_capture/overlay_full_cover_scaled.png
+//components/viz/test/data/video_capture/overlay_moves_0_0.png
+//components/viz/test/data/video_capture/overlay_moves_1_0.png
+//components/viz/test/data/video_capture/overlay_moves_2_0.png
+//components/viz/test/data/video_capture/overlay_moves_2_1.png
+//components/viz/test/data/video_capture/overlay_moves_2_2.png
+//components/viz/test/data/video_capture/overlay_moves_lr.png
+//components/viz/test/data/white.png
+//components/viz/test/data/yuv_stripes.png
+//components/viz/test/data/yuv_stripes_alpha.png
+//components/viz/test/data/yuv_stripes_clipped.png
+//components/viz/test/data/yuv_stripes_offset.png
+//components/viz/test/data/zoom_filter_skia_dawn.png
+//components/viz/test/data/zoom_filter_skia_gl.png
+//components/viz/test/data/zoom_filter_skia_vk.png
+//components/viz/test/data/zoom_filter_sw.png
diff --git a/cc/unit_tests_bundle_data.globlist b/cc/unit_tests_bundle_data.globlist
new file mode 100644
index 0000000..7c022b7
--- /dev/null
+++ b/cc/unit_tests_bundle_data.globlist
@@ -0,0 +1,10 @@
+# Copyright 2023 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+# NOTE: this file is generated by build/ios/update_bundle_filelist.py
+#       If it requires updating, you should get a presubmit error with
+#       instructions on how to regenerate. Otherwise, do not edit.
+
+//cc/test/data/lottie/animation_with_2_text_nodes.json
+//components/viz/test/data/**
+-//components/viz/test/data/render_pass_data/**
\ No newline at end of file
diff --git a/ios/build/tools/setup-gn.config b/ios/build/tools/setup-gn.config
index 9fb6015..9dd19cbf 100644
--- a/ios/build/tools/setup-gn.config
+++ b/ios/build/tools/setup-gn.config
@@ -41,3 +41,4 @@
 filter_e = "//content/shell/*"
 filter_f = "//third_party/blink/*"
 filter_g = "//content/test:content_unittests"
+filter_h = "//cc:cc_unittests"
\ No newline at end of file