6212dd4707eb766306588739a13cbbeb23851dab
[platform/framework/web/crosswalk.git] / src / sync / sync_tests.gypi
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.
4
5 {
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         'internal_api/public/base/model_type_test_util.cc',
31         'internal_api/public/base/model_type_test_util.h',
32         'js/js_test_util.cc',
33         'js/js_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_non_blocking_type_processor_core.cc',
44         'test/engine/mock_non_blocking_type_processor_core.h',
45         'test/engine/mock_non_blocking_type_processor.cc',
46         'test/engine/mock_non_blocking_type_processor.h',
47         'test/engine/mock_update_handler.cc',
48         'test/engine/mock_update_handler.h',
49         'test/engine/single_type_mock_server.cc',
50         'test/engine/single_type_mock_server.h',
51         'test/engine/test_directory_setter_upper.cc',
52         'test/engine/test_directory_setter_upper.h',
53         'test/engine/test_id_factory.h',
54         'test/engine/test_syncable_utils.cc',
55         'test/engine/test_syncable_utils.h',
56         'test/engine/injectable_sync_core_proxy.cc',
57         'test/engine/injectable_sync_core_proxy.h',
58         'test/fake_encryptor.cc',
59         'test/fake_encryptor.h',
60         'test/fake_sync_encryption_handler.cc',
61         'test/fake_sync_encryption_handler.h',
62         'test/null_directory_change_delegate.cc',
63         'test/null_directory_change_delegate.h',
64         'test/null_transaction_observer.cc',
65         'test/null_transaction_observer.h',
66         'test/sessions/test_scoped_session_event_listener.h',
67         'test/sessions/mock_debug_info_getter.h',
68         'test/sessions/mock_debug_info_getter.cc',
69         'test/test_directory_backing_store.cc',
70         'test/test_directory_backing_store.h',
71         'test/test_transaction_observer.cc',
72         'test/test_transaction_observer.h',
73         'util/test_unrecoverable_error_handler.cc',
74         'util/test_unrecoverable_error_handler.h',
75       ],
76     },
77
78     # Test support files for the python sync test server.
79     {
80       'target_name': 'test_support_sync_testserver',
81       'type': 'static_library',
82       'variables': { 'enable_wexit_time_destructors': 1, },
83       'include_dirs': [
84         '..',
85       ],
86       'dependencies': [
87         '../base/base.gyp:base',
88         '../net/net.gyp:net_test_support',
89         # The sync test server uses Python modules generated by the sync protos.
90         '../third_party/protobuf/protobuf.gyp:py_proto',
91         'sync',
92       ],
93       'export_dependent_settings': [
94         '../base/base.gyp:base',
95         '../net/net.gyp:net_test_support',
96       ],
97       'sources': [
98         'test/local_sync_test_server.cc',
99         'test/local_sync_test_server.h',
100       ],
101     },
102
103     # Test support files for the fake sync server.
104     {
105       'target_name': 'test_support_sync_fake_server',
106       'type': 'static_library',
107       'variables': { 'enable_wexit_time_destructors': 1, },
108       'include_dirs': [
109         '..',
110       ],
111       'dependencies': [
112         '../base/base.gyp:base',
113         '../net/net.gyp:net',
114         '../testing/gtest.gyp:gtest',
115         '../third_party/protobuf/protobuf.gyp:protobuf_lite',
116         'sync',
117       ],
118       'export_dependent_settings': [
119         'sync',
120       ],
121       'sources': [
122         'test/fake_server/bookmark_entity.cc',
123         'test/fake_server/bookmark_entity.h',
124         'test/fake_server/bookmark_entity_builder.cc',
125         'test/fake_server/bookmark_entity_builder.h',
126         'test/fake_server/entity_builder.cc',
127         'test/fake_server/entity_builder.h',
128         'test/fake_server/entity_builder_factory.cc',
129         'test/fake_server/entity_builder_factory.h',
130         'test/fake_server/fake_server.cc',
131         'test/fake_server/fake_server.h',
132         'test/fake_server/fake_server_entity.cc',
133         'test/fake_server/fake_server_entity.h',
134         'test/fake_server/fake_server_http_post_provider.cc',
135         'test/fake_server/fake_server_http_post_provider.h',
136         'test/fake_server/fake_server_network_resources.cc',
137         'test/fake_server/fake_server_network_resources.h',
138         'test/fake_server/fake_server_verifier.cc',
139         'test/fake_server/fake_server_verifier.h',
140         'test/fake_server/permanent_entity.cc',
141         'test/fake_server/permanent_entity.h',
142         'test/fake_server/tombstone_entity.cc',
143         'test/fake_server/tombstone_entity.h',
144         'test/fake_server/unique_client_entity.cc',
145         'test/fake_server/unique_client_entity.h',
146       ],
147     },
148
149     # Test support files for the 'sync_notifier' target.
150     {
151       'target_name': 'test_support_sync_notifier',
152       'type': 'static_library',
153       'include_dirs': [
154         '..',
155       ],
156       'defines': [
157         'SYNC_TEST'
158       ],
159       'dependencies': [
160         '../testing/gmock.gyp:gmock',
161         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
162         'sync',
163       ],
164       'export_dependent_settings': [
165         '../testing/gmock.gyp:gmock',
166         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp',
167         'sync',
168       ],
169       'sources': [
170         'notifier/unacked_invalidation_set_test_util.cc',
171         'notifier/unacked_invalidation_set_test_util.h',
172         'internal_api/public/base/object_id_invalidation_map_test_util.h',
173         'internal_api/public/base/object_id_invalidation_map_test_util.cc',
174       ],
175     },
176
177     # Test support files for the 'sync_internal_api' target.
178     {
179       'target_name': 'test_support_sync_internal_api',
180       'type': 'static_library',
181       'variables': { 'enable_wexit_time_destructors': 1, },
182       'include_dirs': [
183         '..',
184       ],
185       'defines': [
186         'SYNC_TEST'
187       ],
188       'dependencies': [
189         '../base/base.gyp:base',
190         '../testing/gtest.gyp:gtest',
191         'sync',
192         'test_support_sync_core',
193       ],
194       'export_dependent_settings': [
195         '../testing/gtest.gyp:gtest',
196         'sync',
197         'test_support_sync_core',
198       ],
199       'sources': [
200         'internal_api/public/base/invalidation_test_util.cc',
201         'internal_api/public/base/invalidation_test_util.h',
202         'internal_api/public/test/fake_sync_manager.h',
203         'internal_api/public/test/null_sync_core_proxy.h',
204         'internal_api/public/test/sync_manager_factory_for_profile_sync_test.h',
205         'internal_api/public/test/test_entry_factory.h',
206         'internal_api/public/test/test_internal_components_factory.h',
207         'internal_api/public/test/test_user_share.h',
208         'internal_api/test/fake_sync_manager.cc',
209         'internal_api/test/null_sync_core_proxy.cc',
210         'internal_api/test/sync_manager_factory_for_profile_sync_test.cc',
211         'internal_api/test/sync_manager_for_profile_sync_test.cc',
212         'internal_api/test/sync_manager_for_profile_sync_test.h',
213         'internal_api/test/test_entry_factory.cc',
214         'internal_api/test/test_internal_components_factory.cc',
215         'internal_api/test/test_user_share.cc',
216       ],
217     },
218
219     # Test support files for the 'sync_api' target.
220     {
221       'target_name': 'test_support_sync_api',
222       'type': 'static_library',
223       'include_dirs': [
224         '..',
225       ],
226       'defines': [
227         'SYNC_TEST'
228       ],
229       'dependencies': [
230         '../testing/gmock.gyp:gmock',
231         'sync',
232       ],
233       'export_dependent_settings': [
234         '../testing/gmock.gyp:gmock',
235         'sync',
236       ],
237       'sources': [
238         'api/fake_syncable_service.cc',
239         'api/fake_syncable_service.h',
240         'api/fake_sync_change_processor.cc',
241         'api/fake_sync_change_processor.h',
242         'api/sync_change_processor_wrapper_for_test.cc',
243         'api/sync_change_processor_wrapper_for_test.h',
244         'api/sync_error_factory_mock.cc',
245         'api/sync_error_factory_mock.h',
246       ],
247     },
248
249     # Unit tests for the 'sync_core' target.  This cannot be a static
250     # library because the unit test files have to be compiled directly
251     # into the executable, so we push the target files to the
252     # depending executable target via direct_dependent_settings.
253     {
254       'target_name': 'sync_core_tests',
255       'type': 'none',
256       # We only want unit test executables to include this target.
257       'suppress_wildcard': 1,
258       'dependencies': [
259         '../base/base.gyp:base',
260         '../sql/sql.gyp:sql',
261         '../testing/gmock.gyp:gmock',
262         '../testing/gtest.gyp:gtest',
263         'sync',
264         'test_support_sync_core',
265       ],
266       'conditions': [
267         ['OS=="linux" and chromeos==1', {
268           # Required by get_session_name_unittest.cc on Chrome OS.
269           'dependencies': [
270             '../chromeos/chromeos.gyp:chromeos',
271           ],
272         }],
273       ],
274       # Propagate all dependencies since the actual compilation
275       # happens in the dependents.
276       'export_dependent_settings': [
277         '../base/base.gyp:base',
278         '../sql/sql.gyp:sql',
279         '../testing/gmock.gyp:gmock',
280         '../testing/gtest.gyp:gtest',
281         'sync',
282         'test_support_sync_core',
283       ],
284       'direct_dependent_settings': {
285         'include_dirs': [
286           '..',
287         ],
288         'sources': [
289           'internal_api/public/base/cancelation_signal_unittest.cc',
290           'internal_api/public/base/enum_set_unittest.cc',
291           'internal_api/public/base/node_ordinal_unittest.cc',
292           'internal_api/public/base/ordinal_unittest.cc',
293           'internal_api/public/base/unique_position_unittest.cc',
294           'internal_api/public/engine/model_safe_worker_unittest.cc',
295           'internal_api/public/util/immutable_unittest.cc',
296           'internal_api/public/util/weak_handle_unittest.cc',
297           'engine/apply_control_data_updates_unittest.cc',
298           'engine/backoff_delay_provider_unittest.cc',
299           'engine/directory_commit_contribution_unittest.cc',
300           'engine/directory_update_handler_unittest.cc',
301           'engine/get_updates_processor_unittest.cc',
302           'engine/model_thread_sync_entity_unittest.cc',
303           'engine/non_blocking_type_processor_core_unittest.cc',
304           'engine/non_blocking_type_processor_unittest.cc',
305           'engine/sync_scheduler_unittest.cc',
306           'engine/sync_thread_sync_entity_unittest.cc',
307           'engine/syncer_proto_util_unittest.cc',
308           'engine/syncer_unittest.cc',
309           'engine/syncer_util_unittest.cc',
310           'js/js_event_details_unittest.cc',
311           'js/sync_js_controller_unittest.cc',
312           'protocol/proto_enum_conversions_unittest.cc',
313           'protocol/proto_value_conversions_unittest.cc',
314           'sessions/model_type_registry_unittest.cc',
315           'sessions/nudge_tracker_unittest.cc',
316           'sessions/status_controller_unittest.cc',
317           'syncable/directory_unittest.cc',
318           'syncable/directory_unittest.h',
319           'syncable/directory_backing_store_unittest.cc',
320           'syncable/entry_kernel_unittest.cc',
321           'syncable/model_type_unittest.cc',
322           'syncable/nigori_util_unittest.cc',
323           'syncable/parent_child_index_unittest.cc',
324           'syncable/syncable_enum_conversions_unittest.cc',
325           'syncable/syncable_id_unittest.cc',
326           'syncable/syncable_unittest.cc',
327           'syncable/syncable_util_unittest.cc',
328           'util/cryptographer_unittest.cc',
329           'util/data_type_histogram_unittest.cc',
330           'util/get_session_name_unittest.cc',
331           'util/nigori_unittest.cc',
332           'util/protobuf_unittest.cc',
333         ],
334       },
335     },
336
337     # Unit tests for the 'sync_notifier' target.  This cannot be a static
338     # library because the unit test files have to be compiled directly
339     # into the executable, so we push the target files to the
340     # depending executable target via direct_dependent_settings.
341     {
342       'target_name': 'sync_notifier_tests',
343       'type': 'none',
344       # We only want unit test executables to include this target.
345       'suppress_wildcard': 1,
346       'dependencies': [
347         '../base/base.gyp:base',
348         '../google_apis/google_apis.gyp:google_apis',
349         '../jingle/jingle.gyp:notifier_test_util',
350         '../net/net.gyp:net_test_support',
351         '../testing/gmock.gyp:gmock',
352         '../testing/gtest.gyp:gtest',
353         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
354         '../third_party/libjingle/libjingle.gyp:libjingle',
355         'sync',
356         'test_support_sync_notifier',
357       ],
358       # Propagate all dependencies since the actual compilation
359       # happens in the dependents.
360       'export_dependent_settings': [
361         '../base/base.gyp:base',
362         '../google_apis/google_apis.gyp:google_apis',
363         '../jingle/jingle.gyp:notifier_test_util',
364         '../net/net.gyp:net_test_support',
365         '../testing/gmock.gyp:gmock',
366         '../testing/gtest.gyp:gtest',
367         '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation',
368         '../third_party/libjingle/libjingle.gyp:libjingle',
369         'sync',
370         'test_support_sync_notifier',
371       ],
372       'direct_dependent_settings': {
373         'include_dirs': [
374           '..',
375         ],
376         'conditions': [
377           ['OS != "android"', {
378             'sources': [
379               'notifier/object_id_invalidation_map_unittest.cc',
380               'notifier/registration_manager_unittest.cc',
381               'notifier/single_object_invalidation_set_unittest.cc',
382               'notifier/unacked_invalidation_set_unittest.cc',
383             ],
384           }],
385         ],
386       },
387     },
388
389     # Unit tests for the 'sync_internal_api' target.  This cannot be a static
390     # library because the unit test files have to be compiled directly
391     # into the executable, so we push the target files to the
392     # depending executable target via direct_dependent_settings.
393     {
394       'target_name': 'sync_internal_api_tests',
395       'type': 'none',
396       # We only want unit test executables to include this target.
397       'suppress_wildcard': 1,
398       'dependencies': [
399         '../base/base.gyp:base',
400         '../google_apis/google_apis.gyp:google_apis_test_support',
401         '../net/net.gyp:net',
402         '../net/net.gyp:net_test_support',
403         '../testing/gmock.gyp:gmock',
404         '../testing/gtest.gyp:gtest',
405         'sync',
406         'test_support_sync_internal_api',
407       ],
408       # Propagate all dependencies since the actual compilation
409       # happens in the dependents.
410       'export_dependent_settings': [
411         '../base/base.gyp:base',
412         '../net/net.gyp:net',
413         '../net/net.gyp:net_test_support',
414         '../testing/gmock.gyp:gmock',
415         '../testing/gtest.gyp:gtest',
416         'sync',
417         'test_support_sync_internal_api',
418       ],
419       'direct_dependent_settings': {
420         'include_dirs': [
421           '..',
422         ],
423         'sources': [
424           'internal_api/attachments/attachment_downloader_impl_unittest.cc',
425           'internal_api/attachments/attachment_uploader_impl_unittest.cc',
426           'internal_api/attachments/fake_attachment_downloader_unittest.cc',
427           'internal_api/attachments/fake_attachment_store_unittest.cc',
428           'internal_api/attachments/fake_attachment_uploader_unittest.cc',
429           'internal_api/debug_info_event_listener_unittest.cc',
430           'internal_api/http_bridge_unittest.cc',
431           'internal_api/js_mutation_event_observer_unittest.cc',
432           'internal_api/js_sync_encryption_handler_observer_unittest.cc',
433           'internal_api/js_sync_manager_observer_unittest.cc',
434           'internal_api/protocol_event_buffer_unittest.cc',
435           'internal_api/public/change_record_unittest.cc',
436           'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
437           'internal_api/sync_backup_manager_unittest.cc',
438           'internal_api/sync_core_proxy_impl_unittest.cc',
439           'internal_api/sync_encryption_handler_impl_unittest.cc',
440           'internal_api/sync_manager_impl_unittest.cc',
441           'internal_api/sync_rollback_manager_base_unittest.cc',
442           'internal_api/sync_rollback_manager_unittest.cc',
443           'internal_api/syncapi_server_connection_manager_unittest.cc',
444         ],
445         'conditions': [
446           ['OS == "ios"', {
447             'sources!': [
448               'internal_api/http_bridge_unittest.cc',
449             ],
450           }],
451         ],
452       },
453     },
454
455     # Unit tests for the 'sync_api' target.  This cannot be a static
456     # library because the unit test files have to be compiled directly
457     # into the executable, so we push the target files to the
458     # depending executable target via direct_dependent_settings.
459     {
460       'target_name': 'sync_api_tests',
461       'type': 'none',
462       # We only want unit test executables to include this target.
463       'suppress_wildcard': 1,
464       'dependencies': [
465         '../base/base.gyp:base',
466         '../testing/gtest.gyp:gtest',
467         'sync',
468         'test_support_sync_internal_api',
469       ],
470       # Propagate all dependencies since the actual compilation
471       # happens in the dependents.
472       'export_dependent_settings': [
473         '../base/base.gyp:base',
474         '../testing/gtest.gyp:gtest',
475         'sync',
476         'test_support_sync_internal_api',
477       ],
478       'direct_dependent_settings': {
479         'include_dirs': [
480           '..',
481         ],
482         'sources': [
483           'api/attachments/attachment_unittest.cc',
484           'api/attachments/attachment_id_unittest.cc',
485           'api/attachments/attachment_service_impl_unittest.cc',
486           'api/attachments/attachment_service_proxy_unittest.cc',
487           'api/sync_change_unittest.cc',
488           'api/sync_data_unittest.cc',
489           'api/sync_error_unittest.cc',
490           'api/sync_merge_result_unittest.cc',
491         ],
492       },
493     },
494
495     # The unit test executable for sync tests.
496     {
497       'target_name': 'sync_unit_tests',
498       'type': '<(gtest_target_type)',
499       # Typed-parametrized tests generate exit-time destructors.
500       'variables': { 'enable_wexit_time_destructors': 0, },
501       'defines': [
502         'SYNC_TEST',
503       ],
504       'dependencies': [
505         '../base/base.gyp:run_all_unittests',
506         'sync_api_tests',
507         'sync_core_tests',
508         'sync_internal_api_tests',
509         'sync_notifier_tests',
510       ],
511       'conditions': [
512         # TODO(akalin): This is needed because histogram.cc uses
513         # leak_annotations.h, which pulls this in.  Make 'base'
514         # propagate this dependency.
515         ['OS=="linux" and use_allocator!="none"', {
516           'dependencies': [
517             '../base/allocator/allocator.gyp:allocator',
518           ],
519         }],
520         ['OS == "android"', {
521           'dependencies': [
522             '../testing/android/native_test.gyp:native_test_native_code',
523           ],
524         }],
525       ],
526     },
527
528     # Test support files for using the Test Accounts service.
529     {
530       'target_name': 'test_support_accounts_client',
531       'type': 'static_library',
532       'direct_dependent_settings': {
533         'include_dirs': [
534           '..',
535         ],
536       },
537       'dependencies': [
538         '../base/base.gyp:base',
539         '../net/net.gyp:net',
540       ],
541       'sources': [
542         'test/accounts_client/test_accounts_client.cc',
543         'test/accounts_client/test_accounts_client.h',
544         'test/accounts_client/url_request_context_getter.cc',
545         'test/accounts_client/url_request_context_getter.h',
546       ],
547     },
548
549     # The Sync end-to-end (and associated infrastructure) tests.
550     {
551       'target_name': 'sync_endtoend_tests',
552       'type': '<(gtest_target_type)',
553       'dependencies': [
554         '../base/base.gyp:run_all_unittests',
555         '../testing/gmock.gyp:gmock',
556         '../testing/gtest.gyp:gtest',
557         '../url/url.gyp:url_lib',
558         'test_support_accounts_client',
559       ],
560       'sources': [
561         'test/accounts_client/test_accounts_client_unittest.cc',
562       ],
563     },
564
565   ],
566   'conditions': [
567     ['OS != "ios"', {
568       'targets': [
569         # A tool that can be used to launch a python sync server instance.
570         {
571           'target_name': 'run_sync_testserver',
572           'type': 'executable',
573           'dependencies': [
574             '../base/base.gyp:base',
575             '../base/base.gyp:test_support_base',
576             '../net/net.gyp:net_test_support',
577             '../testing/gtest.gyp:gtest',
578             'test_support_sync_testserver',
579           ],
580           'sources': [
581             'tools/testserver/run_sync_testserver.cc',
582           ],
583         },
584       ],
585     }],
586     ['OS == "android"', {
587       'targets': [
588         {
589           'target_name': 'sync_javatests',
590           'type': 'none',
591           'variables': {
592             'java_in_dir': '../sync/android/javatests',
593           },
594           'dependencies': [
595             'sync_java',
596             'sync_java_test_support',
597             '../base/base.gyp:base_java_test_support',
598           ],
599           'includes': [ '../build/java.gypi' ],
600         },
601         {
602           'target_name': 'sync_java_test_support',
603           'type': 'none',
604           'variables': {
605             'package_name': 'sync_java_test_support',
606             'java_in_dir': '../sync/test/android/javatests',
607           },
608           'dependencies': [
609             'sync_java',
610           ],
611           'includes': [ '../build/java.gypi' ],
612         },
613       ],
614     }],
615     ['OS == "android"', {
616       'targets': [
617         {
618           'target_name': 'sync_unit_tests_apk',
619           'type': 'none',
620           'dependencies': [
621             'sync_unit_tests',
622           ],
623           'variables': {
624             'test_suite_name': 'sync_unit_tests',
625           },
626           'includes': [ '../build/apk_test.gypi' ],
627         },
628       ],
629     }],
630   ],
631 }