• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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}
632