1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
7 # Test support files for the 'sync_core' target.
9 'target_name': 'test_support_sync_core',
10 'type': 'static_library',
11 'variables': { 'enable_wexit_time_destructors': 1, },
19 '../base/base.gyp:base',
20 '../testing/gmock.gyp:gmock',
21 '../testing/gtest.gyp:gtest',
24 'export_dependent_settings': [
25 '../testing/gmock.gyp:gmock',
26 '../testing/gtest.gyp:gtest',
30 'internal_api/public/base/model_type_test_util.cc',
31 'internal_api/public/base/model_type_test_util.h',
34 'sessions/test_util.cc',
35 'sessions/test_util.h',
36 'test/callback_counter.h',
37 'test/engine/fake_model_worker.cc',
38 'test/engine/fake_model_worker.h',
39 'test/engine/fake_sync_scheduler.cc',
40 'test/engine/fake_sync_scheduler.h',
41 'test/engine/mock_connection_manager.cc',
42 'test/engine/mock_connection_manager.h',
43 'test/engine/mock_update_handler.cc',
44 'test/engine/mock_update_handler.h',
45 'test/engine/test_directory_setter_upper.cc',
46 'test/engine/test_directory_setter_upper.h',
47 'test/engine/test_id_factory.h',
48 'test/engine/test_syncable_utils.cc',
49 'test/engine/test_syncable_utils.h',
50 'test/fake_encryptor.cc',
51 'test/fake_encryptor.h',
52 'test/fake_sync_encryption_handler.cc',
53 'test/fake_sync_encryption_handler.h',
54 'test/null_directory_change_delegate.cc',
55 'test/null_directory_change_delegate.h',
56 'test/null_transaction_observer.cc',
57 'test/null_transaction_observer.h',
58 'test/sessions/test_scoped_session_event_listener.h',
59 'test/sessions/mock_debug_info_getter.h',
60 'test/sessions/mock_debug_info_getter.cc',
61 'test/test_directory_backing_store.cc',
62 'test/test_directory_backing_store.h',
63 'test/test_transaction_observer.cc',
64 'test/test_transaction_observer.h',
65 'util/test_unrecoverable_error_handler.cc',
66 'util/test_unrecoverable_error_handler.h',
70 # Test support files for the python sync test server.
72 'target_name': 'test_support_sync_testserver',
73 'type': 'static_library',
74 'variables': { 'enable_wexit_time_destructors': 1, },
79 '../base/base.gyp:base',
80 '../net/net.gyp:net_test_support',
81 # The sync test server uses Python modules generated by the sync protos.
82 '../third_party/protobuf/protobuf.gyp:py_proto',
85 'export_dependent_settings': [
86 '../base/base.gyp:base',
87 '../net/net.gyp:net_test_support',
90 'test/local_sync_test_server.cc',
91 'test/local_sync_test_server.h',
95 # Test support files for the fake sync server.
97 'target_name': 'test_support_sync_fake_server',
98 'type': 'static_library',
99 'variables': { 'enable_wexit_time_destructors': 1, },
104 '../base/base.gyp:base',
105 '../net/net.gyp:net',
106 '../third_party/protobuf/protobuf.gyp:protobuf_lite',
109 'export_dependent_settings': [
113 'test/fake_server/bookmark_entity.cc',
114 'test/fake_server/bookmark_entity.h',
115 'test/fake_server/fake_server.cc',
116 'test/fake_server/fake_server.h',
117 'test/fake_server/fake_server_entity.cc',
118 'test/fake_server/fake_server_entity.h',
119 'test/fake_server/fake_server_http_post_provider.cc',
120 'test/fake_server/fake_server_http_post_provider.h',
121 'test/fake_server/fake_server_network_resources.cc',
122 'test/fake_server/fake_server_network_resources.h',
123 'test/fake_server/permanent_entity.cc',
124 'test/fake_server/permanent_entity.h',
125 'test/fake_server/tombstone_entity.cc',
126 'test/fake_server/tombstone_entity.h',
127 'test/fake_server/unique_client_entity.cc',
128 'test/fake_server/unique_client_entity.h',
132 # Test support files for the 'sync_notifier' target.
134 'target_name': 'test_support_sync_notifier',
135 'type': 'static_library',
143 '../testing/gmock.gyp:gmock',
144 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
147 'export_dependent_settings': [
148 '../testing/gmock.gyp:gmock',
149 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
153 'notifier/fake_invalidation_handler.cc',
154 'notifier/fake_invalidation_handler.h',
155 'notifier/fake_invalidation_state_tracker.cc',
156 'notifier/fake_invalidation_state_tracker.h',
157 'notifier/fake_invalidator.cc',
158 'notifier/fake_invalidator.h',
159 'notifier/invalidator_test_template.cc',
160 'notifier/invalidator_test_template.h',
161 'notifier/unacked_invalidation_set_test_util.cc',
162 'notifier/unacked_invalidation_set_test_util.h',
163 'internal_api/public/base/object_id_invalidation_map_test_util.h',
164 'internal_api/public/base/object_id_invalidation_map_test_util.cc',
168 # Test support files for the 'sync_internal_api' target.
170 'target_name': 'test_support_sync_internal_api',
171 'type': 'static_library',
172 'variables': { 'enable_wexit_time_destructors': 1, },
180 '../base/base.gyp:base',
181 '../testing/gtest.gyp:gtest',
183 'test_support_sync_core',
185 'export_dependent_settings': [
186 '../testing/gtest.gyp:gtest',
188 'test_support_sync_core',
191 'internal_api/public/base/invalidation_test_util.cc',
192 'internal_api/public/base/invalidation_test_util.h',
193 'internal_api/public/test/fake_sync_manager.h',
194 'internal_api/public/test/sync_manager_factory_for_profile_sync_test.h',
195 'internal_api/public/test/test_entry_factory.h',
196 'internal_api/public/test/test_internal_components_factory.h',
197 'internal_api/public/test/test_user_share.h',
198 'internal_api/test/fake_sync_manager.cc',
199 'internal_api/test/sync_manager_factory_for_profile_sync_test.cc',
200 'internal_api/test/sync_manager_for_profile_sync_test.cc',
201 'internal_api/test/sync_manager_for_profile_sync_test.h',
202 'internal_api/test/test_entry_factory.cc',
203 'internal_api/test/test_internal_components_factory.cc',
204 'internal_api/test/test_user_share.cc',
208 # Test support files for the 'sync_api' target.
210 'target_name': 'test_support_sync_api',
211 'type': 'static_library',
219 '../testing/gmock.gyp:gmock',
222 'export_dependent_settings': [
223 '../testing/gmock.gyp:gmock',
227 'api/fake_syncable_service.cc',
228 'api/fake_syncable_service.h',
229 'api/fake_sync_change_processor.cc',
230 'api/fake_sync_change_processor.h',
231 'api/sync_change_processor_wrapper_for_test.cc',
232 'api/sync_change_processor_wrapper_for_test.h',
233 'api/sync_error_factory_mock.cc',
234 'api/sync_error_factory_mock.h',
238 # Unit tests for the 'sync_core' target. This cannot be a static
239 # library because the unit test files have to be compiled directly
240 # into the executable, so we push the target files to the
241 # depending executable target via direct_dependent_settings.
243 'target_name': 'sync_core_tests',
245 # We only want unit test executables to include this target.
246 'suppress_wildcard': 1,
248 '../base/base.gyp:base',
249 '../sql/sql.gyp:sql',
250 '../testing/gmock.gyp:gmock',
251 '../testing/gtest.gyp:gtest',
253 'test_support_sync_core',
256 ['OS=="linux" and chromeos==1', {
257 # Required by get_session_name_unittest.cc on Chrome OS.
259 '../chromeos/chromeos.gyp:chromeos',
263 # Propagate all dependencies since the actual compilation
264 # happens in the dependents.
265 'export_dependent_settings': [
266 '../base/base.gyp:base',
267 '../sql/sql.gyp:sql',
268 '../testing/gmock.gyp:gmock',
269 '../testing/gtest.gyp:gtest',
271 'test_support_sync_core',
273 'direct_dependent_settings': {
278 'internal_api/public/base/cancelation_signal_unittest.cc',
279 'internal_api/public/base/enum_set_unittest.cc',
280 'internal_api/public/base/node_ordinal_unittest.cc',
281 'internal_api/public/base/ordinal_unittest.cc',
282 'internal_api/public/base/unique_position_unittest.cc',
283 'internal_api/public/engine/model_safe_worker_unittest.cc',
284 'internal_api/public/util/immutable_unittest.cc',
285 'internal_api/public/util/weak_handle_unittest.cc',
286 'engine/apply_control_data_updates_unittest.cc',
287 'engine/backoff_delay_provider_unittest.cc',
288 'engine/directory_commit_contribution_unittest.cc',
289 'engine/directory_update_handler_unittest.cc',
290 'engine/get_updates_processor_unittest.cc',
291 'engine/sync_scheduler_unittest.cc',
292 'engine/syncer_proto_util_unittest.cc',
293 'engine/syncer_unittest.cc',
294 'engine/traffic_recorder_unittest.cc',
295 'js/js_arg_list_unittest.cc',
296 'js/js_event_details_unittest.cc',
297 'js/sync_js_controller_unittest.cc',
298 'protocol/proto_enum_conversions_unittest.cc',
299 'protocol/proto_value_conversions_unittest.cc',
300 'sessions/model_type_registry_unittest.cc',
301 'sessions/nudge_tracker_unittest.cc',
302 'sessions/status_controller_unittest.cc',
303 'syncable/directory_backing_store_unittest.cc',
304 'syncable/model_type_unittest.cc',
305 'syncable/nigori_util_unittest.cc',
306 'syncable/parent_child_index_unittest.cc',
307 'syncable/syncable_enum_conversions_unittest.cc',
308 'syncable/syncable_id_unittest.cc',
309 'syncable/syncable_unittest.cc',
310 'syncable/syncable_util_unittest.cc',
311 'util/cryptographer_unittest.cc',
312 'util/data_type_histogram_unittest.cc',
313 'util/get_session_name_unittest.cc',
314 'util/nigori_unittest.cc',
315 'util/protobuf_unittest.cc',
320 # Unit tests for the 'sync_notifier' target. This cannot be a static
321 # library because the unit test files have to be compiled directly
322 # into the executable, so we push the target files to the
323 # depending executable target via direct_dependent_settings.
325 'target_name': 'sync_notifier_tests',
327 # We only want unit test executables to include this target.
328 'suppress_wildcard': 1,
330 '../base/base.gyp:base',
331 '../google_apis/google_apis.gyp:google_apis',
332 '../jingle/jingle.gyp:notifier_test_util',
333 '../net/net.gyp:net_test_support',
334 '../testing/gmock.gyp:gmock',
335 '../testing/gtest.gyp:gtest',
336 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
337 '../third_party/libjingle/libjingle.gyp:libjingle',
339 'test_support_sync_notifier',
341 # Propagate all dependencies since the actual compilation
342 # happens in the dependents.
343 'export_dependent_settings': [
344 '../base/base.gyp:base',
345 '../google_apis/google_apis.gyp:google_apis',
346 '../jingle/jingle.gyp:notifier_test_util',
347 '../net/net.gyp:net_test_support',
348 '../testing/gmock.gyp:gmock',
349 '../testing/gtest.gyp:gtest',
350 '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
351 '../third_party/libjingle/libjingle.gyp:libjingle',
353 'test_support_sync_notifier',
355 'direct_dependent_settings': {
360 ['OS != "android"', {
362 'notifier/fake_invalidator_unittest.cc',
363 'notifier/gcm_network_channel_unittest.cc',
364 'notifier/invalidation_notifier_unittest.cc',
365 'notifier/invalidator_registrar_unittest.cc',
366 'notifier/non_blocking_invalidator_unittest.cc',
367 'notifier/object_id_invalidation_map_unittest.cc',
368 'notifier/p2p_invalidator_unittest.cc',
369 'notifier/push_client_channel_unittest.cc',
370 'notifier/registration_manager_unittest.cc',
371 'notifier/single_object_invalidation_set_unittest.cc',
372 'notifier/sync_invalidation_listener_unittest.cc',
373 'notifier/sync_system_resources_unittest.cc',
374 'notifier/unacked_invalidation_set_unittest.cc',
381 # Unit tests for the 'sync_internal_api' target. This cannot be a static
382 # library because the unit test files have to be compiled directly
383 # into the executable, so we push the target files to the
384 # depending executable target via direct_dependent_settings.
386 'target_name': 'sync_internal_api_tests',
388 # We only want unit test executables to include this target.
389 'suppress_wildcard': 1,
391 '../base/base.gyp:base',
392 '../net/net.gyp:net',
393 '../net/net.gyp:net_test_support',
394 '../testing/gmock.gyp:gmock',
395 '../testing/gtest.gyp:gtest',
397 'test_support_sync_internal_api',
399 # Propagate all dependencies since the actual compilation
400 # happens in the dependents.
401 'export_dependent_settings': [
402 '../base/base.gyp:base',
403 '../net/net.gyp:net',
404 '../net/net.gyp:net_test_support',
405 '../testing/gmock.gyp:gmock',
406 '../testing/gtest.gyp:gtest',
408 'test_support_sync_internal_api',
410 'direct_dependent_settings': {
415 'internal_api/debug_info_event_listener_unittest.cc',
416 'internal_api/http_bridge_unittest.cc',
417 'internal_api/js_mutation_event_observer_unittest.cc',
418 'internal_api/js_sync_encryption_handler_observer_unittest.cc',
419 'internal_api/js_sync_manager_observer_unittest.cc',
420 'internal_api/public/change_record_unittest.cc',
421 'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
422 'internal_api/syncapi_server_connection_manager_unittest.cc',
423 'internal_api/sync_encryption_handler_impl_unittest.cc',
424 'internal_api/sync_manager_impl_unittest.cc',
429 'internal_api/http_bridge_unittest.cc',
436 # Unit tests for the 'sync_api' target. This cannot be a static
437 # library because the unit test files have to be compiled directly
438 # into the executable, so we push the target files to the
439 # depending executable target via direct_dependent_settings.
441 'target_name': 'sync_api_tests',
443 # We only want unit test executables to include this target.
444 'suppress_wildcard': 1,
446 '../base/base.gyp:base',
447 '../testing/gtest.gyp:gtest',
449 'test_support_sync_internal_api',
451 # Propagate all dependencies since the actual compilation
452 # happens in the dependents.
453 'export_dependent_settings': [
454 '../base/base.gyp:base',
455 '../testing/gtest.gyp:gtest',
457 'test_support_sync_internal_api',
459 'direct_dependent_settings': {
464 'api/attachments/attachment_unittest.cc',
465 'api/attachments/fake_attachment_store_unittest.cc',
466 'api/sync_change_unittest.cc',
467 'api/sync_data_unittest.cc',
468 'api/sync_error_unittest.cc',
469 'api/sync_merge_result_unittest.cc',
474 # The unit test executable for sync tests.
476 'target_name': 'sync_unit_tests',
477 'type': '<(gtest_target_type)',
478 # Typed-parametrized tests generate exit-time destructors.
479 'variables': { 'enable_wexit_time_destructors': 0, },
484 '../base/base.gyp:run_all_unittests',
487 'sync_internal_api_tests',
488 'sync_notifier_tests',
491 # TODO(akalin): This is needed because histogram.cc uses
492 # leak_annotations.h, which pulls this in. Make 'base'
493 # propagate this dependency.
494 # TODO(dmikurube): Kill linux_use_tcmalloc. http://crbug.com/345554
495 ['OS=="linux" and ((use_allocator!="none" and use_allocator!="see_use_tcmalloc") or (use_allocator=="see_use_tcmalloc" and linux_use_tcmalloc==1))', {
497 '../base/allocator/allocator.gyp:allocator',
500 ['OS == "android" and gtest_target_type == "shared_library"', {
502 '../testing/android/native_test.gyp:native_test_native_code',
508 # Test support files for using the Test Accounts service.
510 'target_name': 'test_support_accounts_client',
511 'type': 'static_library',
512 'direct_dependent_settings': {
518 '../base/base.gyp:base',
519 '../net/net.gyp:net',
522 'test/accounts_client/test_accounts_client.cc',
523 'test/accounts_client/test_accounts_client.h',
524 'test/accounts_client/url_request_context_getter.cc',
525 'test/accounts_client/url_request_context_getter.h',
529 # The Sync end-to-end (and associated infrastructure) tests.
531 'target_name': 'sync_endtoend_tests',
532 'type': '<(gtest_target_type)',
534 '../base/base.gyp:run_all_unittests',
535 '../testing/gmock.gyp:gmock',
536 '../testing/gtest.gyp:gtest',
537 '../url/url.gyp:url_lib',
538 'test_support_accounts_client',
541 'test/accounts_client/test_accounts_client_unittest.cc',
550 'target_name': 'sync_tools_helper',
551 'type': 'static_library',
553 'SYNC_IMPLEMENTATION',
559 '../base/base.gyp:base',
562 'export_dependent_settings': [
563 '../base/base.gyp:base',
567 'tools/null_invalidation_state_tracker.cc',
568 'tools/null_invalidation_state_tracker.h',
572 # A tool that can be used to launch a python sync server instance.
574 'target_name': 'run_sync_testserver',
575 'type': 'executable',
577 '../base/base.gyp:base',
578 '../base/base.gyp:test_support_base',
579 '../net/net.gyp:net_test_support',
580 '../testing/gtest.gyp:gtest',
581 'test_support_sync_testserver',
584 'tools/testserver/run_sync_testserver.cc',
588 # A standalone executable that runs a Sync FakeServer instance.
590 'target_name': 'run_sync_fake_server',
591 'type': 'executable',
593 '../base/base.gyp:base',
594 '../base/base.gyp:test_support_base',
595 '../net/net.gyp:http_server',
596 '../net/net.gyp:net',
597 '../net/net.gyp:net_test_support',
598 '../testing/gtest.gyp:gtest',
599 '../url/url.gyp:url_lib',
600 'test_support_sync_fake_server',
603 'test/fake_server/run_sync_fake_server.cc',
604 'test/fake_server/fake_sync_server_http_handler.cc',
605 'test/fake_server/fake_sync_server_http_handler.h',
609 # A tool to listen to sync notifications and print them out.
611 'target_name': 'sync_listen_notifications',
612 'type': 'executable',
617 '../base/base.gyp:base',
618 '../jingle/jingle.gyp:notifier',
619 '../net/net.gyp:net',
620 '../net/net.gyp:net_test_support',
625 'tools/sync_listen_notifications.cc',
629 # A standalone command-line sync client.
631 'target_name': 'sync_client',
632 'type': 'executable',
637 '../base/base.gyp:base',
638 '../jingle/jingle.gyp:notifier',
639 '../net/net.gyp:net',
640 '../net/net.gyp:net_test_support',
643 'test_support_sync_core'
646 'tools/sync_client.cc',
651 ['OS == "android"', {
654 'target_name': 'sync_javatests',
657 'java_in_dir': '../sync/android/javatests',
661 'sync_java_test_support',
662 '../base/base.gyp:base_java_test_support',
664 'includes': [ '../build/java.gypi' ],
667 'target_name': 'sync_java_test_support',
670 'package_name': 'sync_java_test_support',
671 'java_in_dir': '../sync/test/android/javatests',
676 'includes': [ '../build/java.gypi' ],
680 # Special target to wrap a gtest_target_type==shared_library
681 # sync_unit_tests into an android apk for execution.
682 ['OS == "android" and gtest_target_type == "shared_library"', {
685 'target_name': 'sync_unit_tests_apk',
691 'test_suite_name': 'sync_unit_tests',
692 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)sync_unit_tests<(SHARED_LIB_SUFFIX)',
694 'includes': [ '../build/apk_test.gypi' ],