Remove define of defunct SK_DEBUG_PATH_REF from skia.gyp
[chromium-blink-merge.git] / sync / sync_tests.gypi
blobe2f7c9ea46267bc9fbeb36254f60cedecacfe00e
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.
6   'targets': [
7     # Test support files for the 'sync_core' target.
8     {
9       'target_name': 'test_support_sync_core',
10       'type': 'static_library',
11       'variables': { 'enable_wexit_time_destructors': 1, },
12       'include_dirs': [
13         '..',
14       ],
15       'defines': [
16         'SYNC_TEST'
17       ],
18       'dependencies': [
19         '../base/base.gyp:base',
20         '../testing/gmock.gyp:gmock',
21         '../testing/gtest.gyp:gtest',
22         'sync',
23       ],
24       'export_dependent_settings': [
25         '../testing/gmock.gyp:gmock',
26         '../testing/gtest.gyp:gtest',
27         'sync',
28       ],
29       'sources': [
30         'js/js_test_util.cc',
31         'js/js_test_util.h',
32         'sessions/test_util.cc',
33         'sessions/test_util.h',
34         'test/callback_counter.h',
35         'test/engine/fake_model_worker.cc',
36         'test/engine/fake_model_worker.h',
37         'test/engine/fake_sync_scheduler.cc',
38         'test/engine/fake_sync_scheduler.h',
39         'test/engine/mock_connection_manager.cc',
40         'test/engine/mock_connection_manager.h',
41         'test/engine/syncer_command_test.cc',
42         'test/engine/syncer_command_test.h',
43         'test/engine/test_directory_setter_upper.cc',
44         'test/engine/test_directory_setter_upper.h',
45         'test/engine/test_id_factory.h',
46         'test/engine/test_syncable_utils.cc',
47         'test/engine/test_syncable_utils.h',
48         'test/fake_encryptor.cc',
49         'test/fake_encryptor.h',
50         'test/fake_sync_encryption_handler.h',
51         'test/fake_sync_encryption_handler.cc',
52         'test/fake_extensions_activity_monitor.cc',
53         'test/fake_extensions_activity_monitor.h',
54         'test/test_transaction_observer.cc',
55         'test/test_transaction_observer.h',
56         'test/null_directory_change_delegate.cc',
57         'test/null_directory_change_delegate.h',
58         'test/null_transaction_observer.cc',
59         'test/null_transaction_observer.h',
60         'test/sessions/test_scoped_session_event_listener.h',
61         'test/test_directory_backing_store.cc',
62         'test/test_directory_backing_store.h',
63         'util/test_unrecoverable_error_handler.cc',
64         'util/test_unrecoverable_error_handler.h',
65       ],
66     },
68     # Test support files for the python sync test server.
69     {
70       'target_name': 'test_support_sync_testserver',
71       'type': 'static_library',
72       'variables': { 'enable_wexit_time_destructors': 1, },
73       'include_dirs': [
74         '..',
75       ],
76       'dependencies': [
77         '../base/base.gyp:base',
78         '../net/net.gyp:net_test_support',
79         # The sync test server uses Python modules generated by the sync protos.
80         '../third_party/protobuf/protobuf.gyp:py_proto',
81         'sync',
82       ],
83       'export_dependent_settings': [
84         '../base/base.gyp:base',
85         '../net/net.gyp:net_test_support',
86       ],
87       'sources': [
88         'test/local_sync_test_server.cc',
89         'test/local_sync_test_server.h',
90       ],
91     },
93     # Test support files for the 'sync_notifier' target.
94     {
95       'target_name': 'test_support_sync_notifier',
96       'type': 'static_library',
97       'include_dirs': [
98         '..',
99       ],
100       'defines': [
101         'SYNC_TEST'
102       ],
103       'dependencies': [
104         '../testing/gmock.gyp:gmock',
105         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
106         'sync',
107       ],
108       'export_dependent_settings': [
109         '../testing/gmock.gyp:gmock',
110         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
111         'sync',
112       ],
113       'sources': [
114         'notifier/fake_invalidation_state_tracker.cc',
115         'notifier/fake_invalidation_state_tracker.h',
116         'notifier/fake_invalidator.cc',
117         'notifier/fake_invalidator.h',
118         'notifier/fake_invalidation_handler.cc',
119         'notifier/fake_invalidation_handler.h',
120         'notifier/invalidator_test_template.cc',
121         'notifier/invalidator_test_template.h',
122         'notifier/object_id_invalidation_map_test_util.cc',
123         'notifier/object_id_invalidation_map_test_util.h',
124       ],
125     },
127     # Test support files for the 'sync_internal_api' target.
128     {
129       'target_name': 'test_support_sync_internal_api',
130       'type': 'static_library',
131       'variables': { 'enable_wexit_time_destructors': 1, },
132       'include_dirs': [
133         '..',
134       ],
135       'defines': [
136         'SYNC_TEST'
137       ],
138       'dependencies': [
139         '../base/base.gyp:base',
140         '../testing/gtest.gyp:gtest',
141         'sync',
142         'test_support_sync_core',
143       ],
144       'export_dependent_settings': [
145         '../testing/gtest.gyp:gtest',
146         'sync',
147         'test_support_sync_core',
148       ],
149       'sources': [
150         'internal_api/public/base/invalidation_test_util.cc',
151         'internal_api/public/base/invalidation_test_util.h',
152         'internal_api/public/base/model_type_invalidation_map_test_util.cc',
153         'internal_api/public/base/model_type_invalidation_map_test_util.h',
154         'internal_api/public/base/model_type_test_util.cc',
155         'internal_api/public/base/model_type_test_util.h',
156         'internal_api/public/test/fake_sync_manager.h',
157         'internal_api/public/test/test_entry_factory.h',
158         'internal_api/public/test/test_internal_components_factory.h',
159         'internal_api/public/test/test_user_share.h',
160         'internal_api/test/fake_sync_manager.cc',
161         'internal_api/test/test_entry_factory.cc',
162         'internal_api/test/test_internal_components_factory.cc',
163         'internal_api/test/test_user_share.cc',
164       ],
165     },
167     # Test support files for the 'sync_api' target.
168     {
169       'target_name': 'test_support_sync_api',
170       'type': 'static_library',
171       'include_dirs': [
172         '..',
173       ],
174       'defines': [
175         'SYNC_TEST'
176       ],
177       'dependencies': [
178         '../testing/gmock.gyp:gmock',
179         'sync',
180       ],
181       'export_dependent_settings': [
182         '../testing/gmock.gyp:gmock',
183         'sync',
184       ],
185       'sources': [
186         'api/fake_syncable_service.cc',
187         'api/fake_syncable_service.h',
188         'api/sync_error_factory_mock.cc',
189         'api/sync_error_factory_mock.h',
190       ],
191     },
193     # Unit tests for the 'sync_core' target.  This cannot be a static
194     # library because the unit test files have to be compiled directly
195     # into the executable, so we push the target files to the
196     # depending executable target via direct_dependent_settings.
197     {
198       'target_name': 'sync_core_tests',
199       'type': 'none',
200       # We only want unit test executables to include this target.
201       'suppress_wildcard': 1,
202       'dependencies': [
203         '../base/base.gyp:base',
204         '../sql/sql.gyp:sql',
205         '../testing/gmock.gyp:gmock',
206         '../testing/gtest.gyp:gtest',
207         'sync',
208         'test_support_sync_core',
209       ],
210       'conditions': [
211         ['OS=="linux" and chromeos==1', {
212           # Required by get_session_name_unittest.cc on Chrome OS.
213           'dependencies': [
214             '../chromeos/chromeos.gyp:chromeos',
215           ],
216         }],
217       ],
218       # Propagate all dependencies since the actual compilation
219       # happens in the dependents.
220       'export_dependent_settings': [
221         '../base/base.gyp:base',
222         '../sql/sql.gyp:sql',
223         '../testing/gmock.gyp:gmock',
224         '../testing/gtest.gyp:gtest',
225         'sync',
226         'test_support_sync_core',
227       ],
228       'direct_dependent_settings': {
229         'include_dirs': [
230           '..',
231         ],
232         'sources': [
233           'internal_api/public/base/enum_set_unittest.cc',
234           'internal_api/public/base/model_type_invalidation_map_unittest.cc',
235           'internal_api/public/base/node_ordinal_unittest.cc',
236           'internal_api/public/base/ordinal_unittest.cc',
237           'internal_api/public/base/unique_position_unittest.cc',
238           'internal_api/public/engine/model_safe_worker_unittest.cc',
239           'internal_api/public/util/immutable_unittest.cc',
240           'internal_api/public/util/weak_handle_unittest.cc',
241           'engine/apply_control_data_updates_unittest.cc',
242           'engine/apply_updates_and_resolve_conflicts_command_unittest.cc',
243           'engine/backoff_delay_provider_unittest.cc',
244           'engine/download_updates_command_unittest.cc',
245           'engine/model_changing_syncer_command_unittest.cc',
246           'engine/process_commit_response_command_unittest.cc',
247           'engine/process_updates_command_unittest.cc',
248           'engine/store_timestamps_command_unittest.cc',
249           'engine/sync_scheduler_unittest.cc',
250           'engine/syncer_proto_util_unittest.cc',
251           'engine/syncer_unittest.cc',
252           'engine/traffic_recorder_unittest.cc',
253           'js/js_arg_list_unittest.cc',
254           'js/js_event_details_unittest.cc',
255           'js/sync_js_controller_unittest.cc',
256           'protocol/proto_enum_conversions_unittest.cc',
257           'protocol/proto_value_conversions_unittest.cc',
258           'sessions/nudge_tracker_unittest.cc',
259           'sessions/ordered_commit_set_unittest.cc',
260           'sessions/status_controller_unittest.cc',
261           'sessions/sync_session_unittest.cc',
262           'syncable/directory_backing_store_unittest.cc',
263           'syncable/model_type_unittest.cc',
264           'syncable/nigori_util_unittest.cc',
265           'syncable/parent_child_index_unittest.cc',
266           'syncable/syncable_enum_conversions_unittest.cc',
267           'syncable/syncable_id_unittest.cc',
268           'syncable/syncable_unittest.cc',
269           'syncable/syncable_util_unittest.cc',
270           'util/cryptographer_unittest.cc',
271           'util/data_type_histogram_unittest.cc',
272           'util/get_session_name_unittest.cc',
273           'util/nigori_unittest.cc',
274           'util/protobuf_unittest.cc',
275         ],
276         'conditions': [
277           ['OS == "ios" and coverage != 0', {
278             'sources!': [
279               # These sources can't be built with coverage due to a toolchain
280               # bug: http://openradar.appspot.com/radar?id=1499403
281               'engine/syncer_unittest.cc',
283               # These tests crash when run with coverage turned on due to an
284               # issue with llvm_gcda_increment_indirect_counter:
285               # http://crbug.com/156058
286               'syncable/directory_backing_store_unittest.cc',
287             ],
288           }],
289         ],
290       },
291     },
293     # Unit tests for the 'sync_notifier' target.  This cannot be a static
294     # library because the unit test files have to be compiled directly
295     # into the executable, so we push the target files to the
296     # depending executable target via direct_dependent_settings.
297     {
298       'target_name': 'sync_notifier_tests',
299       'type': 'none',
300       # We only want unit test executables to include this target.
301       'suppress_wildcard': 1,
302       'dependencies': [
303         '../base/base.gyp:base',
304         '../jingle/jingle.gyp:notifier_test_util',
305         '../net/net.gyp:net_test_support',
306         '../testing/gmock.gyp:gmock',
307         '../testing/gtest.gyp:gtest',
308         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
309         '../third_party/libjingle/libjingle.gyp:libjingle',
310         'sync',
311         'test_support_sync_notifier',
312       ],
313       # Propagate all dependencies since the actual compilation
314       # happens in the dependents.
315       'export_dependent_settings': [
316         '../base/base.gyp:base',
317         '../jingle/jingle.gyp:notifier_test_util',
318         '../net/net.gyp:net_test_support',
319         '../testing/gmock.gyp:gmock',
320         '../testing/gtest.gyp:gtest',
321         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
322         '../third_party/libjingle/libjingle.gyp:libjingle',
323         'sync',
324         'test_support_sync_notifier',
325       ],
326       'direct_dependent_settings': {
327         'include_dirs': [
328           '..',
329         ],
330         'sources': [
331           'notifier/invalidator_factory_unittest.cc',
332         ],
333         'conditions': [
334           ['OS != "android"', {
335             'sources': [
336               'notifier/ack_tracker_unittest.cc',
337               'notifier/fake_invalidator_unittest.cc',
338               'notifier/invalidation_notifier_unittest.cc',
339               'notifier/invalidator_registrar_unittest.cc',
340               'notifier/non_blocking_invalidator_unittest.cc',
341               'notifier/p2p_invalidator_unittest.cc',
342               'notifier/push_client_channel_unittest.cc',
343               'notifier/registration_manager_unittest.cc',
344               'notifier/sync_invalidation_listener_unittest.cc',
345               'notifier/sync_system_resources_unittest.cc',
346             ],
347           }],
348         ],
349       },
350     },
352     # Unit tests for the 'sync_internal_api' target.  This cannot be a static
353     # library because the unit test files have to be compiled directly
354     # into the executable, so we push the target files to the
355     # depending executable target via direct_dependent_settings.
356     {
357       'target_name': 'sync_internal_api_tests',
358       'type': 'none',
359       # We only want unit test executables to include this target.
360       'suppress_wildcard': 1,
361       'dependencies': [
362         '../base/base.gyp:base',
363         '../net/net.gyp:net',
364         '../net/net.gyp:net_test_support',
365         '../testing/gmock.gyp:gmock',
366         '../testing/gtest.gyp:gtest',
367         'sync',
368         'test_support_sync_internal_api',
369       ],
370       # Propagate all dependencies since the actual compilation
371       # happens in the dependents.
372       'export_dependent_settings': [
373         '../base/base.gyp:base',
374         '../net/net.gyp:net',
375         '../net/net.gyp:net_test_support',
376         '../testing/gmock.gyp:gmock',
377         '../testing/gtest.gyp:gtest',
378         'sync',
379         'test_support_sync_internal_api',
380       ],
381       'direct_dependent_settings': {
382         'include_dirs': [
383           '..',
384         ],
385         'sources': [
386           'internal_api/debug_info_event_listener_unittest.cc',
387           'internal_api/http_bridge_unittest.cc',
388           'internal_api/js_mutation_event_observer_unittest.cc',
389           'internal_api/js_sync_encryption_handler_observer_unittest.cc',
390           'internal_api/js_sync_manager_observer_unittest.cc',
391           'internal_api/public/change_record_unittest.cc',
392           'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
393           'internal_api/public/sessions/sync_source_info_unittest.cc',
394           'internal_api/syncapi_server_connection_manager_unittest.cc',
395           'internal_api/sync_encryption_handler_impl_unittest.cc',
396           'internal_api/sync_manager_impl_unittest.cc',
397         ],
398         'conditions': [
399           ['OS == "ios"', {
400             'sources!': [
401               'internal_api/http_bridge_unittest.cc',
402             ],
403           }],
404         ],
405       },
406     },
408     # Unit tests for the 'sync_api' target.  This cannot be a static
409     # library because the unit test files have to be compiled directly
410     # into the executable, so we push the target files to the
411     # depending executable target via direct_dependent_settings.
412     {
413       'target_name': 'sync_api_tests',
414       'type': 'none',
415       # We only want unit test executables to include this target.
416       'suppress_wildcard': 1,
417       'dependencies': [
418         '../base/base.gyp:base',
419         '../testing/gtest.gyp:gtest',
420         'sync',
421         'test_support_sync_internal_api',
422       ],
423       # Propagate all dependencies since the actual compilation
424       # happens in the dependents.
425       'export_dependent_settings': [
426         '../base/base.gyp:base',
427         '../testing/gtest.gyp:gtest',
428         'sync',
429         'test_support_sync_internal_api',
430       ],
431       'direct_dependent_settings': {
432         'include_dirs': [
433           '..',
434         ],
435         'sources': [
436           'api/sync_change_unittest.cc',
437           'api/sync_error_unittest.cc',
438           'api/sync_merge_result_unittest.cc',
439         ],
440       },
441     },
443     # The unit test executable for sync tests.
444     {
445       'target_name': 'sync_unit_tests',
446       'type': '<(gtest_target_type)',
447       # Typed-parametrized tests generate exit-time destructors.
448       'variables': { 'enable_wexit_time_destructors': 0, },
449       'defines': [
450         'SYNC_TEST',
451       ],
452       'dependencies': [
453         '../base/base.gyp:run_all_unittests',
454         'sync_api_tests',
455         'sync_core_tests',
456         'sync_internal_api_tests',
457         'sync_notifier_tests',
458       ],
459       'conditions': [
460         # TODO(akalin): This is needed because histogram.cc uses
461         # leak_annotations.h, which pulls this in.  Make 'base'
462         # propagate this dependency.
463         ['OS=="linux" and linux_use_tcmalloc==1', {
464           'dependencies': [
465             '../base/allocator/allocator.gyp:allocator',
466           ],
467         }],
468         ['OS == "android" and gtest_target_type == "shared_library"', {
469           'dependencies': [
470             '../testing/android/native_test.gyp:native_test_native_code',
471           ],
472         }],
473       ],
474     },
476     # Test support files for using the Test Accounts service.
477     {
478       'target_name': 'test_support_accounts_client',
479       'type': 'static_library',
480       'direct_dependent_settings': {
481         'include_dirs': [
482           '..',
483         ],
484       },
485       'dependencies': [
486         '../base/base.gyp:base',
487         '../net/net.gyp:net',
488       ],
489       'sources': [
490         'test/accounts_client/test_accounts_client.cc',
491         'test/accounts_client/test_accounts_client.h',
492         'test/accounts_client/url_request_context_getter.cc',
493         'test/accounts_client/url_request_context_getter.h',
494       ],
495     },
497     # The Sync end-to-end (and associated infrastructure) tests.
498     {
499       'target_name': 'sync_endtoend_tests',
500       'type': '<(gtest_target_type)',
501       'dependencies': [
502         '../base/base.gyp:run_all_unittests',
503         '../testing/gmock.gyp:gmock',
504         '../testing/gtest.gyp:gtest',
505         '../url/url.gyp:url_lib',
506         'test_support_accounts_client',
507       ],
508       'sources': [
509         'test/accounts_client/test_accounts_client_unittest.cc',
510       ],
511     },
513   ],
514   'conditions': [
515     ['OS != "ios"', {
516       'targets': [
517         {
518           'target_name': 'sync_tools_helper',
519           'type': 'static_library',
520           'defines': [
521             'SYNC_IMPLEMENTATION',
522           ],
523           'include_dirs': [
524             '..',
525           ],
526           'dependencies': [
527             '../base/base.gyp:base',
528             'sync',
529           ],
530           'export_dependent_settings': [
531             '../base/base.gyp:base',
532             'sync',
533           ],
534           'sources': [
535             'tools/null_invalidation_state_tracker.cc',
536             'tools/null_invalidation_state_tracker.h',
537           ],
538         },
540         # A tool that can be used to launch a python sync server instance.
541         {
542           'target_name': 'run_sync_testserver',
543           'type': 'executable',
544           'dependencies': [
545             '../base/base.gyp:base',
546             '../base/base.gyp:test_support_base',
547             '../net/net.gyp:net_test_support',
548             '../testing/gtest.gyp:gtest',
549             'test_support_sync_testserver',
550           ],
551           'sources': [
552             'tools/testserver/run_sync_testserver.cc',
553           ],
554         },
556         # A tool to listen to sync notifications and print them out.
557         {
558           'target_name': 'sync_listen_notifications',
559           'type': 'executable',
560           'defines': [
561             'SYNC_TEST',
562           ],
563           'dependencies': [
564             '../base/base.gyp:base',
565             '../jingle/jingle.gyp:notifier',
566             '../net/net.gyp:net',
567             '../net/net.gyp:net_test_support',
568             'sync',
569             'sync_tools_helper',
570           ],
571           'sources': [
572             'tools/sync_listen_notifications.cc',
573           ],
574         },
576         # A standalone command-line sync client.
577         {
578           'target_name': 'sync_client',
579           'type': 'executable',
580           'defines': [
581             'SYNC_TEST',
582           ],
583           'dependencies': [
584             '../base/base.gyp:base',
585             '../jingle/jingle.gyp:notifier',
586             '../net/net.gyp:net',
587             '../net/net.gyp:net_test_support',
588             'sync',
589             'sync_tools_helper',
590             'test_support_sync_core'
591           ],
592           'sources': [
593             'tools/sync_client.cc',
594           ],
595         },
596       ],
597     }],
598     ['OS == "android"', {
599       'targets': [
600         {
601           'target_name': 'sync_javatests',
602           'type': 'none',
603           'variables': {
604             'java_in_dir': '../sync/android/javatests',
605           },
606           'dependencies': [
607             'sync_java',
608             'sync_java_test_support',
609             '../base/base.gyp:base_java_test_support',
610           ],
611           'includes': [ '../build/java.gypi' ],
612         },
613         {
614           'target_name': 'sync_java_test_support',
615           'type': 'none',
616           'variables': {
617             'package_name': 'sync_java_test_support',
618             'java_in_dir': '../sync/test/android/javatests',
619           },
620           'dependencies': [
621             'sync_java',
622           ],
623           'includes': [ '../build/java.gypi' ],
624         },
625       ],
626     }],
627     # Special target to wrap a gtest_target_type==shared_library
628     # sync_unit_tests into an android apk for execution.
629     ['OS == "android" and gtest_target_type == "shared_library"', {
630       'targets': [
631         {
632           'target_name': 'sync_unit_tests_apk',
633           'type': 'none',
634           'dependencies': [
635             'sync_unit_tests',
636           ],
637           'variables': {
638             'test_suite_name': 'sync_unit_tests',
639             'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)sync_unit_tests<(SHARED_LIB_SUFFIX)',
640           },
641           'includes': [ '../build/apk_test.gypi' ],
642         },
643       ],
644     }],
645   ],