Commit 9f86ec07 authored by tfarina@chromium.org's avatar tfarina@chromium.org

Reland "Move a good set of gfx unit tests into gfx_unittests target."

It was reverted in r270600 because it broke compilation:
lib/libgfx.so:error: undefined reference to 'XCreateRegion'
lib/libgfx.so:error: undefined reference to 'XUnionRectWithRegion'
lib/libgfx.so:error: undefined reference to 'XPolygonRegion'

Original description:
This requires to major changes:

1- It requires the introduction of GfxTestSuite to allow us to
initialize the ResourceBundle which is required for some of these tests
to pass.
2- It requires to split gfx_unittests target out of gfx.gyp, into
gfx_tests.gyp. This is necessary because otherwise a circular dependency
between ui_base.gyp and gfx.gyp would arise.

The circular dependency is the form of:
gfx.gyp -> ui_base.gyp -> gfx.gyp

And is created because gfx_unittests now requires ResourceBundle to link
which is in ui_base target.

BUG=331829
TEST=ui_unittests,gfx_unittests
R=sadrul@chromium.org, danakj@chromium.org
TBR=ben@chromium.org

Review URL: https://codereview.chromium.org/291753002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272088 0039d316-1c4b-4281-b951-d872f2087c98
parent 6d9804ad
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
['OS=="ios"', { ['OS=="ios"', {
'dependencies': [ 'dependencies': [
'../ios/ios.gyp:*', '../ios/ios.gyp:*',
'../ui/gfx/gfx.gyp:gfx_unittests', '../ui/gfx/gfx_tests.gyp:gfx_unittests',
'../ui/ui_unittests.gyp:ui_unittests', '../ui/ui_unittests.gyp:ui_unittests',
], ],
}], }],
...@@ -256,7 +256,7 @@ ...@@ -256,7 +256,7 @@
'../net/net.gyp:net_unittests', '../net/net.gyp:net_unittests',
'../sql/sql.gyp:sql_unittests', '../sql/sql.gyp:sql_unittests',
'../sync/sync.gyp:sync_unit_tests', '../sync/sync.gyp:sync_unit_tests',
'../ui/gfx/gfx.gyp:gfx_unittests', '../ui/gfx/gfx_tests.gyp:gfx_unittests',
'../ui/ui_unittests.gyp:ui_unittests', '../ui/ui_unittests.gyp:ui_unittests',
'../url/url.gyp:url_unittests', '../url/url.gyp:url_unittests',
], ],
...@@ -771,7 +771,7 @@ ...@@ -771,7 +771,7 @@
'../sql/sql.gyp:sql_unittests_apk', '../sql/sql.gyp:sql_unittests_apk',
'../sync/sync.gyp:sync_unit_tests_apk', '../sync/sync.gyp:sync_unit_tests_apk',
'../ui/events/events.gyp:events_unittests_apk', '../ui/events/events.gyp:events_unittests_apk',
'../ui/gfx/gfx.gyp:gfx_unittests_apk', '../ui/gfx/gfx_tests.gyp:gfx_unittests_apk',
'../ui/ui_unittests.gyp:ui_unittests_apk', '../ui/ui_unittests.gyp:ui_unittests_apk',
'../android_webview/android_webview.gyp:android_webview_test_apk', '../android_webview/android_webview.gyp:android_webview_test_apk',
'../chrome/chrome.gyp:chrome_shell_test_apk', '../chrome/chrome.gyp:chrome_shell_test_apk',
...@@ -871,7 +871,7 @@ ...@@ -871,7 +871,7 @@
'../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
'../tools/perf/clear_system_cache/clear_system_cache.gyp:*', '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
'../tools/telemetry/telemetry.gyp:*', '../tools/telemetry/telemetry.gyp:*',
'../ui/gfx/gfx.gyp:gfx_unittests', '../ui/gfx/gfx_tests.gyp:gfx_unittests',
'../ui/ui_unittests.gyp:ui_unittests', '../ui/ui_unittests.gyp:ui_unittests',
'../url/url.gyp:url_unittests', '../url/url.gyp:url_unittests',
'../webkit/renderer/compositor_bindings/compositor_bindings_tests.gyp:webkit_compositor_bindings_unittests', '../webkit/renderer/compositor_bindings/compositor_bindings_tests.gyp:webkit_compositor_bindings_unittests',
...@@ -906,7 +906,7 @@ ...@@ -906,7 +906,7 @@
'../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
'../tools/perf/clear_system_cache/clear_system_cache.gyp:*', '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
'../tools/telemetry/telemetry.gyp:*', '../tools/telemetry/telemetry.gyp:*',
'../ui/gfx/gfx.gyp:gfx_unittests', '../ui/gfx/gfx_tests.gyp:gfx_unittests',
'../ui/ui_unittests.gyp:ui_unittests', '../ui/ui_unittests.gyp:ui_unittests',
'../url/url.gyp:url_unittests', '../url/url.gyp:url_unittests',
'../webkit/renderer/compositor_bindings/compositor_bindings_tests.gyp:webkit_compositor_bindings_unittests', '../webkit/renderer/compositor_bindings/compositor_bindings_tests.gyp:webkit_compositor_bindings_unittests',
...@@ -954,7 +954,7 @@ ...@@ -954,7 +954,7 @@
'../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
'../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests', '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
'../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
'../ui/gfx/gfx.gyp:gfx_unittests', '../ui/gfx/gfx_tests.gyp:gfx_unittests',
'../ui/ui_unittests.gyp:ui_unittests', '../ui/ui_unittests.gyp:ui_unittests',
'../url/url.gyp:url_unittests', '../url/url.gyp:url_unittests',
], ],
...@@ -1005,7 +1005,7 @@ ...@@ -1005,7 +1005,7 @@
'../tools/perf/clear_system_cache/clear_system_cache.gyp:*', '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
'../tools/telemetry/telemetry.gyp:*', '../tools/telemetry/telemetry.gyp:*',
'../ui/events/events.gyp:events_unittests', '../ui/events/events.gyp:events_unittests',
'../ui/gfx/gfx.gyp:gfx_unittests', '../ui/gfx/gfx_tests.gyp:gfx_unittests',
'../ui/ui_unittests.gyp:ui_unittests', '../ui/ui_unittests.gyp:ui_unittests',
'../ui/views/views.gyp:views_unittests', '../ui/views/views.gyp:views_unittests',
'../url/url.gyp:url_unittests', '../url/url.gyp:url_unittests',
...@@ -1109,7 +1109,7 @@ ...@@ -1109,7 +1109,7 @@
'../sql/sql.gyp:sql_unittests', '../sql/sql.gyp:sql_unittests',
'../sync/sync.gyp:sync_unit_tests', '../sync/sync.gyp:sync_unit_tests',
'../third_party/widevine/cdm/widevine_cdm.gyp:widevinecdmadapter', '../third_party/widevine/cdm/widevine_cdm.gyp:widevinecdmadapter',
'../ui/gfx/gfx.gyp:gfx_unittests', '../ui/gfx/gfx_tests.gyp:gfx_unittests',
'../ui/ui_unittests.gyp:ui_unittests', '../ui/ui_unittests.gyp:ui_unittests',
'../ui/views/views.gyp:views_unittests', '../ui/views/views.gyp:views_unittests',
'../url/url.gyp:url_unittests', '../url/url.gyp:url_unittests',
...@@ -1154,8 +1154,7 @@ ...@@ -1154,8 +1154,7 @@
'../ui/aura/aura.gyp:*', '../ui/aura/aura.gyp:*',
'../ui/compositor/compositor.gyp:*', '../ui/compositor/compositor.gyp:*',
'../ui/events/events.gyp:*', '../ui/events/events.gyp:*',
'../ui/wm/wm.gyp:*', '../ui/gfx/gfx_tests.gyp:gfx_unittests',
'../ui/gfx/gfx.gyp:gfx_unittests',
'../ui/keyboard/keyboard.gyp:*', '../ui/keyboard/keyboard.gyp:*',
'../ui/message_center/message_center.gyp:*', '../ui/message_center/message_center.gyp:*',
'../ui/snapshot/snapshot.gyp:snapshot_unittests', '../ui/snapshot/snapshot.gyp:snapshot_unittests',
...@@ -1163,6 +1162,7 @@ ...@@ -1163,6 +1162,7 @@
'../ui/views/examples/examples.gyp:views_examples_with_content_exe', '../ui/views/examples/examples.gyp:views_examples_with_content_exe',
'../ui/views/views.gyp:views', '../ui/views/views.gyp:views',
'../ui/views/views.gyp:views_unittests', '../ui/views/views.gyp:views_unittests',
'../ui/wm/wm.gyp:*',
'../webkit/renderer/compositor_bindings/compositor_bindings_tests.gyp:webkit_compositor_bindings_unittests', '../webkit/renderer/compositor_bindings/compositor_bindings_tests.gyp:webkit_compositor_bindings_unittests',
'blink_tests', 'blink_tests',
], ],
......
...@@ -372,6 +372,7 @@ ...@@ -372,6 +372,7 @@
}], }],
['use_x11==1', { ['use_x11==1', {
'dependencies': [ 'dependencies': [
'../../build/linux/system.gyp:x11',
'x/gfx_x11.gyp:gfx_x11', 'x/gfx_x11.gyp:gfx_x11',
], ],
}], }],
...@@ -438,97 +439,6 @@ ...@@ -438,97 +439,6 @@
}], }],
], ],
}, },
{
'target_name': 'gfx_unittests',
'type': '<(gtest_target_type)',
# iOS uses a small subset of ui. common_sources are the only files that
# are built on iOS.
'common_sources' : [
'image/image_family_unittest.cc',
'image/image_unittest.cc',
'image/image_unittest_util.cc',
'image/image_unittest_util.h',
'image/image_unittest_util_ios.mm',
'image/image_unittest_util_mac.mm',
],
'all_sources': [
'<@(_common_sources)',
'animation/animation_container_unittest.cc',
'animation/animation_unittest.cc',
'animation/multi_animation_unittest.cc',
'animation/slide_animation_unittest.cc',
'animation/tween_unittest.cc',
'blit_unittest.cc',
'break_list_unittest.cc',
'codec/jpeg_codec_unittest.cc',
'codec/png_codec_unittest.cc',
'color_analysis_unittest.cc',
'color_utils_unittest.cc',
'display_unittest.cc',
'geometry/box_unittest.cc',
'geometry/cubic_bezier_unittest.cc',
'geometry/insets_unittest.cc',
'geometry/matrix3_unittest.cc',
'geometry/point_unittest.cc',
'geometry/point3_unittest.cc',
'geometry/quad_unittest.cc',
'geometry/r_tree_unittest.cc',
'geometry/rect_unittest.cc',
'geometry/safe_integer_conversions_unittest.cc',
'geometry/size_unittest.cc',
'geometry/vector2d_unittest.cc',
'geometry/vector3d_unittest.cc',
'image/image_mac_unittest.mm',
'image/image_util_unittest.cc',
'range/range_mac_unittest.mm',
'range/range_unittest.cc',
'range/range_win_unittest.cc',
'sequential_id_generator_unittest.cc',
'shadow_value_unittest.cc',
'skbitmap_operations_unittest.cc',
'skrect_conversion_unittest.cc',
'transform_util_unittest.cc',
'utf16_indexing_unittest.cc',
],
'dependencies': [
'../../base/base.gyp:base',
'../../base/base.gyp:run_all_unittests',
'../../base/base.gyp:test_support_base',
'../../skia/skia.gyp:skia',
'../../testing/gtest.gyp:gtest',
'../../third_party/libpng/libpng.gyp:libpng',
'gfx',
'gfx_geometry',
'gfx_test_support',
],
'conditions': [
['OS == "ios"', {
'sources': ['<@(_common_sources)'],
}, { # OS != "ios"
'sources': ['<@(_all_sources)'],
}],
['OS == "win"', {
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],
}],
['OS != "mac" and OS != "ios"', {
'sources': [
'transform_unittest.cc',
'interpolated_transform_unittest.cc',
],
}],
['OS == "android"', {
'sources': [
'android/scroller_unittest.cc',
],
}],
['OS == "android" and gtest_target_type == "shared_library"', {
'dependencies': [
'../../testing/android/native_test.gyp:native_test_native_code',
],
}],
],
}
], ],
'conditions': [ 'conditions': [
['OS=="android"' , { ['OS=="android"' , {
...@@ -548,20 +458,5 @@ ...@@ -548,20 +458,5 @@
}, },
], ],
}], }],
['OS == "android"', {
'targets': [
{
'target_name': 'gfx_unittests_apk',
'type': 'none',
'dependencies': [
'gfx_unittests',
],
'variables': {
'test_suite_name': 'gfx_unittests',
},
'includes': [ '../../build/apk_test.gypi' ],
},
],
}],
], ],
} }
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
'variables': {
'chromium_code': 1,
},
'targets': [
{
'target_name': 'gfx_unittests',
'type': '<(gtest_target_type)',
# iOS uses a small subset of ui. common_sources are the only files that
# are built on iOS.
'common_sources' : [
'font_unittest.cc',
'image/image_family_unittest.cc',
'image/image_skia_unittest.cc',
'image/image_unittest.cc',
'image/image_unittest_util.cc',
'image/image_unittest_util.h',
'image/image_unittest_util_ios.mm',
'image/image_unittest_util_mac.mm',
'test/run_all_unittests.cc',
'text_elider_unittest.cc',
'text_utils_unittest.cc',
],
'all_sources': [
'<@(_common_sources)',
'animation/animation_container_unittest.cc',
'animation/animation_unittest.cc',
'animation/multi_animation_unittest.cc',
'animation/slide_animation_unittest.cc',
'animation/tween_unittest.cc',
'blit_unittest.cc',
'break_list_unittest.cc',
'codec/jpeg_codec_unittest.cc',
'codec/png_codec_unittest.cc',
'color_analysis_unittest.cc',
'color_utils_unittest.cc',
'display_unittest.cc',
'geometry/box_unittest.cc',
'geometry/cubic_bezier_unittest.cc',
'geometry/insets_unittest.cc',
'geometry/matrix3_unittest.cc',
'geometry/point_unittest.cc',
'geometry/point3_unittest.cc',
'geometry/quad_unittest.cc',
'geometry/r_tree_unittest.cc',
'geometry/rect_unittest.cc',
'geometry/safe_integer_conversions_unittest.cc',
'geometry/size_unittest.cc',
'geometry/vector2d_unittest.cc',
'geometry/vector3d_unittest.cc',
'image/image_mac_unittest.mm',
'image/image_util_unittest.cc',
'range/range_mac_unittest.mm',
'range/range_unittest.cc',
'range/range_win_unittest.cc',
'sequential_id_generator_unittest.cc',
'shadow_value_unittest.cc',
'skbitmap_operations_unittest.cc',
'skrect_conversion_unittest.cc',
'transform_util_unittest.cc',
'utf16_indexing_unittest.cc',
],
'dependencies': [
'../../base/base.gyp:base',
'../../base/base.gyp:test_support_base',
'../../skia/skia.gyp:skia',
'../../testing/gtest.gyp:gtest',
'../../third_party/libpng/libpng.gyp:libpng',
'../base/ui_base.gyp:ui_base',
'gfx.gyp:gfx',
'gfx.gyp:gfx_geometry',
'gfx.gyp:gfx_test_support',
],
'conditions': [
['OS == "ios"', {
'sources': ['<@(_common_sources)'],
}, { # OS != "ios"
'sources': ['<@(_all_sources)'],
}],
['OS == "win"', {
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],
}],
['OS != "mac" and OS != "ios"', {
'sources': [
'transform_unittest.cc',
'interpolated_transform_unittest.cc',
],
}],
['use_pango == 1', {
'dependencies': [
'../../build/linux/system.gyp:fontconfig',
'../../build/linux/system.gyp:pangocairo',
],
'sources': [
'platform_font_pango_unittest.cc',
],
'conditions': [
['use_allocator!="none"', {
'dependencies': [
'../../base/allocator/allocator.gyp:allocator',
],
}],
],
}],
['use_ozone==1 and use_pango==0', {
'sources!': [
'font_unittest.cc',
'text_elider_unittest.cc',
],
}],
],
}
],
'conditions': [
['OS == "android"', {
'targets': [
{
'target_name': 'gfx_unittests_apk',
'type': 'none',
'dependencies': [
'gfx_unittests',
],
'variables': {
'test_suite_name': 'gfx_unittests',
},
'includes': [ '../../build/apk_test.gypi' ],
},
],
}],
],
}
specific_include_rules = {
"run_all_unittests\.cc": [
"+ui/base/resource/resource_bundle.h",
"+ui/base/ui_base_paths.h",
],
}
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "base/path_service.h"
#include "base/test/launcher/unit_test_launcher.h"
#include "base/test/test_suite.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/ui_base_paths.h"
namespace {
class GfxTestSuite : public base::TestSuite {
public:
GfxTestSuite(int argc, char** argv) : base::TestSuite(argc, argv) {}
protected:
virtual void Initialize() OVERRIDE {
base::TestSuite::Initialize();
ui::RegisterPathProvider();
base::FilePath ui_test_pak_path;
ASSERT_TRUE(PathService::Get(ui::UI_TEST_PAK, &ui_test_pak_path));
ui::ResourceBundle::InitSharedInstanceWithPakPath(ui_test_pak_path);
}
virtual void Shutdown() OVERRIDE {
ui::ResourceBundle::CleanupSharedInstance();
base::TestSuite::Shutdown();
}
private:
DISALLOW_COPY_AND_ASSIGN(GfxTestSuite);
};
} // namespace
int main(int argc, char** argv) {
GfxTestSuite test_suite(argc, argv);
return base::LaunchUnitTests(
argc,
argv,
base::Bind(&GfxTestSuite::Run, base::Unretained(&test_suite)));
}
...@@ -40,11 +40,7 @@ ...@@ -40,11 +40,7 @@
'base/resource/data_pack_unittest.cc', 'base/resource/data_pack_unittest.cc',
'base/resource/resource_bundle_unittest.cc', 'base/resource/resource_bundle_unittest.cc',
'base/test/run_all_unittests.cc', 'base/test/run_all_unittests.cc',
'gfx/font_unittest.cc',
'gfx/image/image_skia_unittest.cc',
'gfx/screen_unittest.cc', 'gfx/screen_unittest.cc',
'gfx/text_elider_unittest.cc',
'gfx/text_utils_unittest.cc',
], ],
'all_sources': [ 'all_sources': [
'<@(_common_sources)', '<@(_common_sources)',
...@@ -142,12 +138,8 @@ ...@@ -142,12 +138,8 @@
}], }],
['use_pango == 1', { ['use_pango == 1', {
'dependencies': [ 'dependencies': [
'../build/linux/system.gyp:fontconfig',
'../build/linux/system.gyp:pangocairo', '../build/linux/system.gyp:pangocairo',
], ],
'sources': [
'gfx/platform_font_pango_unittest.cc',
],
'conditions': [ 'conditions': [
['use_allocator!="none"', { ['use_allocator!="none"', {
'dependencies': [ 'dependencies': [
...@@ -208,11 +200,9 @@ ...@@ -208,11 +200,9 @@
}], }],
['use_ozone==1 and use_pango==0', { ['use_ozone==1 and use_pango==0', {
'sources!': [ 'sources!': [
'gfx/text_elider_unittest.cc', 'gfx/canvas_unittest.cc',
'gfx/font_unittest.cc',
'gfx/font_list_unittest.cc', 'gfx/font_list_unittest.cc',
'gfx/render_text_unittest.cc', 'gfx/render_text_unittest.cc',
'gfx/canvas_unittest.cc',
], ],
}], }],
['chromeos==1', { ['chromeos==1', {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment