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    # GN version: //sync:test_support_sync_core
9    {
10      'target_name': 'test_support_sync_core',
11      'type': 'static_library',
12      'variables': { 'enable_wexit_time_destructors': 1, },
13      'include_dirs': [
14        '..',
15      ],
16      'defines': [
17        'SYNC_TEST'
18      ],
19      'dependencies': [
20        '../base/base.gyp:base',
21        '../testing/gmock.gyp:gmock',
22        '../testing/gtest.gyp:gtest',
23        'sync',
24      ],
25      'export_dependent_settings': [
26        '../testing/gmock.gyp:gmock',
27        '../testing/gtest.gyp:gtest',
28        'sync',
29      ],
30      'sources': [
31        'internal_api/public/base/model_type_test_util.cc',
32        'internal_api/public/base/model_type_test_util.h',
33        'js/js_test_util.cc',
34        'js/js_test_util.h',
35        'sessions/test_util.cc',
36        'sessions/test_util.h',
37        'test/callback_counter.h',
38        'test/engine/fake_model_worker.cc',
39        'test/engine/fake_model_worker.h',
40        'test/engine/fake_sync_scheduler.cc',
41        'test/engine/fake_sync_scheduler.h',
42        'test/engine/injectable_sync_context_proxy.cc',
43        'test/engine/injectable_sync_context_proxy.h',
44        'test/engine/mock_connection_manager.cc',
45        'test/engine/mock_connection_manager.h',
46        'test/engine/mock_model_type_sync_proxy.cc',
47        'test/engine/mock_model_type_sync_proxy.h',
48        'test/engine/mock_model_type_sync_worker.cc',
49        'test/engine/mock_model_type_sync_worker.h',
50        'test/engine/mock_nudge_handler.cc',
51        'test/engine/mock_nudge_handler.h',
52        'test/engine/mock_update_handler.cc',
53        'test/engine/mock_update_handler.h',
54        'test/engine/single_type_mock_server.cc',
55        'test/engine/single_type_mock_server.h',
56        'test/engine/test_directory_setter_upper.cc',
57        'test/engine/test_directory_setter_upper.h',
58        'test/engine/test_id_factory.h',
59        'test/engine/test_syncable_utils.cc',
60        'test/engine/test_syncable_utils.h',
61        'test/fake_encryptor.cc',
62        'test/fake_encryptor.h',
63        'test/fake_sync_encryption_handler.cc',
64        'test/fake_sync_encryption_handler.h',
65        'test/mock_invalidation.cc',
66        'test/mock_invalidation.h',
67        'test/mock_invalidation_tracker.cc',
68        'test/mock_invalidation_tracker.h',
69        'test/trackable_mock_invalidation.cc',
70        'test/trackable_mock_invalidation.h',
71        'test/null_directory_change_delegate.cc',
72        'test/null_directory_change_delegate.h',
73        'test/null_transaction_observer.cc',
74        'test/null_transaction_observer.h',
75        'test/sessions/test_scoped_session_event_listener.h',
76        'test/sessions/mock_debug_info_getter.h',
77        'test/sessions/mock_debug_info_getter.cc',
78        'test/test_directory_backing_store.cc',
79        'test/test_directory_backing_store.h',
80        'test/test_transaction_observer.cc',
81        'test/test_transaction_observer.h',
82        'util/test_unrecoverable_error_handler.cc',
83        'util/test_unrecoverable_error_handler.h',
84      ],
85    },
86
87    # Test support files for the python sync test server.
88    # GN version: //sync:test_support_sync_testserver
89    {
90      'target_name': 'test_support_sync_testserver',
91      'type': 'static_library',
92      'variables': { 'enable_wexit_time_destructors': 1, },
93      'include_dirs': [
94        '..',
95      ],
96      'dependencies': [
97        '../base/base.gyp:base',
98        '../net/net.gyp:net_test_support',
99        # The sync test server uses Python modules generated by the sync protos.
100        '../third_party/protobuf/protobuf.gyp:py_proto',
101        'sync',
102      ],
103      'export_dependent_settings': [
104        '../base/base.gyp:base',
105        '../net/net.gyp:net_test_support',
106      ],
107      'sources': [
108        'test/local_sync_test_server.cc',
109        'test/local_sync_test_server.h',
110      ],
111    },
112
113    # Test support files for the fake sync server.
114    # GN version: //sync:test_support_sync_fake_server
115    {
116      'target_name': 'test_support_sync_fake_server',
117      'type': 'static_library',
118      'variables': { 'enable_wexit_time_destructors': 1, },
119      'include_dirs': [
120        '..',
121      ],
122      'dependencies': [
123        '../base/base.gyp:base',
124        '../net/net.gyp:net',
125        '../testing/gtest.gyp:gtest',
126        '../third_party/protobuf/protobuf.gyp:protobuf_lite',
127        'sync',
128      ],
129      'export_dependent_settings': [
130        'sync',
131      ],
132      'sources': [
133        'test/fake_server/bookmark_entity.cc',
134        'test/fake_server/bookmark_entity.h',
135        'test/fake_server/bookmark_entity_builder.cc',
136        'test/fake_server/bookmark_entity_builder.h',
137        'test/fake_server/entity_builder.cc',
138        'test/fake_server/entity_builder.h',
139        'test/fake_server/entity_builder_factory.cc',
140        'test/fake_server/entity_builder_factory.h',
141        'test/fake_server/fake_server.cc',
142        'test/fake_server/fake_server.h',
143        'test/fake_server/fake_server_entity.cc',
144        'test/fake_server/fake_server_entity.h',
145        'test/fake_server/fake_server_http_post_provider.cc',
146        'test/fake_server/fake_server_http_post_provider.h',
147        'test/fake_server/fake_server_network_resources.cc',
148        'test/fake_server/fake_server_network_resources.h',
149        'test/fake_server/fake_server_verifier.cc',
150        'test/fake_server/fake_server_verifier.h',
151        'test/fake_server/permanent_entity.cc',
152        'test/fake_server/permanent_entity.h',
153        'test/fake_server/tombstone_entity.cc',
154        'test/fake_server/tombstone_entity.h',
155        'test/fake_server/unique_client_entity.cc',
156        'test/fake_server/unique_client_entity.h',
157      ],
158    },
159
160    # Test support files for the 'sync_internal_api' target.
161    # GN version: //sync:test_support_sync_internal_api
162    {
163      'target_name': 'test_support_sync_internal_api',
164      'type': 'static_library',
165      'variables': { 'enable_wexit_time_destructors': 1, },
166      'include_dirs': [
167        '..',
168      ],
169      'defines': [
170        'SYNC_TEST'
171      ],
172      'dependencies': [
173        '../base/base.gyp:base',
174        '../testing/gtest.gyp:gtest',
175        'sync',
176        'test_support_sync_core',
177      ],
178      'export_dependent_settings': [
179        '../testing/gtest.gyp:gtest',
180        'sync',
181        'test_support_sync_core',
182      ],
183      'sources': [
184        'internal_api/public/test/fake_sync_manager.h',
185        'internal_api/public/test/null_sync_context_proxy.h',
186        'internal_api/public/test/sync_manager_factory_for_profile_sync_test.h',
187        'internal_api/public/test/test_entry_factory.h',
188        'internal_api/public/test/test_internal_components_factory.h',
189        'internal_api/public/test/test_user_share.h',
190        'internal_api/test/fake_sync_manager.cc',
191        'internal_api/test/null_sync_context_proxy.cc',
192        'internal_api/test/sync_manager_factory_for_profile_sync_test.cc',
193        'internal_api/test/sync_manager_for_profile_sync_test.cc',
194        'internal_api/test/sync_manager_for_profile_sync_test.h',
195        'internal_api/test/test_entry_factory.cc',
196        'internal_api/test/test_internal_components_factory.cc',
197        'internal_api/test/test_user_share.cc',
198      ],
199    },
200
201    # Test support files for the 'sync_api' target.
202    # GN version: //sync:test_support_sync_api
203    {
204      'target_name': 'test_support_sync_api',
205      'type': 'static_library',
206      'include_dirs': [
207        '..',
208      ],
209      'defines': [
210        'SYNC_TEST'
211      ],
212      'dependencies': [
213        '../testing/gmock.gyp:gmock',
214        'sync',
215      ],
216      'export_dependent_settings': [
217        '../testing/gmock.gyp:gmock',
218        'sync',
219      ],
220      'sources': [
221        'api/fake_syncable_service.cc',
222        'api/fake_syncable_service.h',
223        'api/fake_sync_change_processor.cc',
224        'api/fake_sync_change_processor.h',
225        'api/sync_change_processor_wrapper_for_test.cc',
226        'api/sync_change_processor_wrapper_for_test.h',
227        'api/sync_error_factory_mock.cc',
228        'api/sync_error_factory_mock.h',
229      ],
230    },
231
232    # The unit test executable for sync tests.
233    # GN version: //sync:sync_unit_tests
234    {
235      'target_name': 'sync_unit_tests',
236      'type': '<(gtest_target_type)',
237      # Typed-parametrized tests generate exit-time destructors.
238      'variables': { 'enable_wexit_time_destructors': 0, },
239      'defines': [
240        'SYNC_TEST',
241      ],
242      'dependencies': [
243        '../base/base.gyp:base',
244        '../base/base.gyp:run_all_unittests',
245        '../google_apis/google_apis.gyp:google_apis',
246        '../google_apis/google_apis.gyp:google_apis_test_support',
247        '../net/net.gyp:net',
248        '../net/net.gyp:net_test_support',
249        '../sql/sql.gyp:sql',
250        '../testing/gmock.gyp:gmock',
251        '../testing/gtest.gyp:gtest',
252        '../third_party/protobuf/protobuf.gyp:protobuf_lite',
253        'sync',
254        'test_support_sync_core',
255        'test_support_sync_internal_api',
256      ],
257      'include_dirs': [
258        '..',
259      ],
260      'sources': [
261        'api/attachments/attachment_id_unittest.cc',
262        'api/attachments/attachment_unittest.cc',
263        'api/attachments/fake_attachment_store_unittest.cc',
264        'api/sync_change_unittest.cc',
265        'api/sync_data_unittest.cc',
266        'api/sync_error_unittest.cc',
267        'api/sync_merge_result_unittest.cc',
268        'engine/apply_control_data_updates_unittest.cc',
269        'engine/backoff_delay_provider_unittest.cc',
270        'engine/directory_commit_contribution_unittest.cc',
271        'engine/directory_update_handler_unittest.cc',
272        'engine/entity_tracker_unittest.cc',
273        'engine/get_updates_processor_unittest.cc',
274        'engine/model_type_entity_unittest.cc',
275        'engine/model_type_sync_proxy_impl_unittest.cc',
276        'engine/model_type_sync_worker_impl_unittest.cc',
277        'engine/sync_scheduler_unittest.cc',
278        'engine/syncer_proto_util_unittest.cc',
279        'engine/syncer_unittest.cc',
280        'engine/syncer_util_unittest.cc',
281        'internal_api/attachments/attachment_downloader_impl_unittest.cc',
282        'internal_api/attachments/attachment_service_impl_unittest.cc',
283        'internal_api/attachments/attachment_service_proxy_unittest.cc',
284        'internal_api/attachments/attachment_uploader_impl_unittest.cc',
285        'internal_api/attachments/fake_attachment_downloader_unittest.cc',
286        'internal_api/attachments/fake_attachment_uploader_unittest.cc',
287        'internal_api/attachments/task_queue_unittest.cc',
288        'internal_api/debug_info_event_listener_unittest.cc',
289        'internal_api/http_bridge_unittest.cc',
290        'internal_api/js_mutation_event_observer_unittest.cc',
291        'internal_api/js_sync_encryption_handler_observer_unittest.cc',
292        'internal_api/js_sync_manager_observer_unittest.cc',
293        'internal_api/protocol_event_buffer_unittest.cc',
294        'internal_api/public/base/attachment_id_proto_unittest.cc',
295        'internal_api/public/base/cancelation_signal_unittest.cc',
296        'internal_api/public/base/enum_set_unittest.cc',
297        'internal_api/public/base/node_ordinal_unittest.cc',
298        'internal_api/public/base/ordinal_unittest.cc',
299        'internal_api/public/base/unique_position_unittest.cc',
300        'internal_api/public/change_record_unittest.cc',
301        'internal_api/public/engine/model_safe_worker_unittest.cc',
302        'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
303        'internal_api/public/util/immutable_unittest.cc',
304        'internal_api/public/util/weak_handle_unittest.cc',
305        'internal_api/sync_backup_manager_unittest.cc',
306        'internal_api/sync_context_proxy_impl_unittest.cc',
307        'internal_api/sync_encryption_handler_impl_unittest.cc',
308        'internal_api/sync_manager_impl_unittest.cc',
309        'internal_api/sync_rollback_manager_base_unittest.cc',
310        'internal_api/sync_rollback_manager_unittest.cc',
311        'internal_api/syncapi_server_connection_manager_unittest.cc',
312        'js/js_event_details_unittest.cc',
313        'js/sync_js_controller_unittest.cc',
314        'protocol/proto_enum_conversions_unittest.cc',
315        'protocol/proto_value_conversions_unittest.cc',
316        'sessions/model_type_registry_unittest.cc',
317        'sessions/nudge_tracker_unittest.cc',
318        'sessions/status_controller_unittest.cc',
319        'syncable/deferred_on_disk_directory_backing_store_unittest.cc',
320        'syncable/directory_backing_store_unittest.cc',
321        'syncable/directory_unittest.cc',
322        'syncable/directory_unittest.h',
323        'syncable/entry_kernel_unittest.cc',
324        'syncable/model_type_unittest.cc',
325        'syncable/nigori_util_unittest.cc',
326        'syncable/parent_child_index_unittest.cc',
327        'syncable/syncable_enum_conversions_unittest.cc',
328        'syncable/syncable_id_unittest.cc',
329        'syncable/syncable_unittest.cc',
330        'syncable/syncable_util_unittest.cc',
331        'util/cryptographer_unittest.cc',
332        'util/data_type_histogram_unittest.cc',
333        'util/get_session_name_unittest.cc',
334        'util/nigori_unittest.cc',
335        'util/protobuf_unittest.cc',
336      ],
337      'conditions': [
338        # TODO(akalin): This is needed because histogram.cc uses
339        # leak_annotations.h, which pulls this in.  Make 'base'
340        # propagate this dependency.
341        ['OS=="linux" and use_allocator!="none"', {
342          'dependencies': [
343            '../base/allocator/allocator.gyp:allocator',
344          ],
345        }],
346        ['OS == "android"', {
347          'dependencies': [
348            '../testing/android/native_test.gyp:native_test_native_code',
349          ],
350        }],
351        ['OS=="linux" and chromeos==1', {
352          # Required by get_session_name_unittest.cc on Chrome OS.
353          'dependencies': [
354            '../chromeos/chromeos.gyp:chromeos',
355          ],
356        }],
357        ['OS == "ios"', {
358          'sources!': [
359            'internal_api/http_bridge_unittest.cc',
360          ],
361        }],
362      ],
363    },
364
365    # Test support files for using the Test Accounts service.
366    # GN version: //sync:test_support_accounts_client
367    {
368      'target_name': 'test_support_accounts_client',
369      'type': 'static_library',
370      'direct_dependent_settings': {
371        'include_dirs': [
372          '..',
373        ],
374      },
375      'dependencies': [
376        '../base/base.gyp:base',
377        '../net/net.gyp:net',
378      ],
379      'sources': [
380        'test/accounts_client/test_accounts_client.cc',
381        'test/accounts_client/test_accounts_client.h',
382        'test/accounts_client/url_request_context_getter.cc',
383        'test/accounts_client/url_request_context_getter.h',
384      ],
385    },
386
387    # The Sync end-to-end (and associated infrastructure) tests.
388    # GN version: //sync:sync_endtoend_tests
389    {
390      'target_name': 'sync_endtoend_tests',
391      'type': '<(gtest_target_type)',
392      'dependencies': [
393        '../base/base.gyp:run_all_unittests',
394        '../testing/gmock.gyp:gmock',
395        '../testing/gtest.gyp:gtest',
396        '../url/url.gyp:url_lib',
397        'test_support_accounts_client',
398      ],
399      'sources': [
400        'test/accounts_client/test_accounts_client_unittest.cc',
401      ],
402    },
403
404  ],
405  'conditions': [
406    ['OS != "ios"', {
407      'targets': [
408        # A tool that can be used to launch a python sync server instance.
409        {
410          'target_name': 'run_sync_testserver',
411          'type': 'executable',
412          'dependencies': [
413            '../base/base.gyp:base',
414            '../base/base.gyp:test_support_base',
415            '../net/net.gyp:net_test_support',
416            '../testing/gtest.gyp:gtest',
417            'test_support_sync_testserver',
418          ],
419          'sources': [
420            'tools/testserver/run_sync_testserver.cc',
421          ],
422        },
423      ],
424    }],
425    ['OS == "android"', {
426      'targets': [
427        {
428          'target_name': 'sync_javatests',
429          'type': 'none',
430          'variables': {
431            'java_in_dir': '../sync/android/javatests',
432          },
433          'dependencies': [
434            'sync_java',
435            'sync_java_test_support',
436            '../base/base.gyp:base_java_test_support',
437          ],
438          'includes': [ '../build/java.gypi' ],
439        },
440        {
441          'target_name': 'sync_java_test_support',
442          'type': 'none',
443          'variables': {
444            'java_in_dir': '../sync/test/android/javatests',
445          },
446          'dependencies': [
447            'sync_java',
448          ],
449          'includes': [ '../build/java.gypi' ],
450        },
451        {
452          'target_name': 'sync_fake_server_jni_headers',
453          'type': 'none',
454          'sources': [
455            '../chrome/android/sync_shell/javatests/src/chromium/chrome/browser/sync/FakeServerHelper.java',
456          ],
457          'variables': {
458            'jni_gen_package': 'sync/test/fake_server',
459            'jni_generator_ptr_type': 'long',
460          },
461          'includes': [ '../build/jni_generator.gypi' ],
462        },
463        {
464          'target_name': 'test_support_sync_fake_server_android',
465          'type': 'static_library',
466          'dependencies': [
467            'sync_fake_server_jni_headers',
468            'test_support_sync_fake_server',
469            '../base/base.gyp:base',
470          ],
471          'sources': [
472            'test/fake_server/android/fake_server_helper_android.cc',
473            'test/fake_server/android/fake_server_helper_android.h',
474          ],
475        },
476      ],
477    }],
478    ['OS == "android"', {
479      'targets': [
480        {
481          'target_name': 'sync_unit_tests_apk',
482          'type': 'none',
483          'dependencies': [
484            'sync_unit_tests',
485          ],
486          'variables': {
487            'test_suite_name': 'sync_unit_tests',
488          },
489          'includes': [ '../build/apk_test.gypi' ],
490        },
491      ],
492    }],
493  ],
494}
495