Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / sync / BUILD.gn
blob34b57b7f97f6dc505b7ca682ebb4c0e6d9d074b5
1 # Copyright 2014 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.
5 import("//build/config/features.gni")
6 import("//testing/test.gni")
8 component("sync") {
9   public_deps = [
10     ":sync_core",
11     "//sync/protocol",
12   ]
15 # GYP version: sync/sync.gyp:sync_core
16 source_set("sync_core") {
17   sources = [
18     "api/attachments/attachment.cc",
19     "api/attachments/attachment.h",
20     "api/attachments/attachment_id.cc",
21     "api/attachments/attachment_id.h",
22     "api/attachments/attachment_metadata.cc",
23     "api/attachments/attachment_metadata.h",
24     "api/attachments/attachment_store.cc",
25     "api/attachments/attachment_store.h",
26     "api/attachments/attachment_store_backend.cc",
27     "api/attachments/attachment_store_backend.h",
28     "api/model_type_store.cc",
29     "api/model_type_store.h",
30     "api/string_ordinal.h",
31     "api/sync_change.cc",
32     "api/sync_change.h",
33     "api/sync_change_processor.cc",
34     "api/sync_change_processor.h",
35     "api/sync_data.cc",
36     "api/sync_data.h",
37     "api/sync_error.cc",
38     "api/sync_error.h",
39     "api/sync_error_factory.cc",
40     "api/sync_error_factory.h",
41     "api/sync_merge_result.cc",
42     "api/sync_merge_result.h",
43     "api/syncable_service.cc",
44     "api/syncable_service.h",
45     "api/time.h",
46     "base/sync_export.h",
47     "engine/all_status.cc",
48     "engine/all_status.h",
49     "engine/apply_control_data_updates.cc",
50     "engine/apply_control_data_updates.h",
51     "engine/backoff_delay_provider.cc",
52     "engine/backoff_delay_provider.h",
53     "engine/clear_server_data.cc",
54     "engine/clear_server_data.h",
55     "engine/commit.cc",
56     "engine/commit.h",
57     "engine/commit_contribution.cc",
58     "engine/commit_contribution.h",
59     "engine/commit_contributor.cc",
60     "engine/commit_contributor.h",
61     "engine/commit_processor.cc",
62     "engine/commit_processor.h",
63     "engine/commit_queue.cc",
64     "engine/commit_queue.h",
65     "engine/commit_util.cc",
66     "engine/commit_util.h",
67     "engine/conflict_resolver.cc",
68     "engine/conflict_resolver.h",
69     "engine/conflict_util.cc",
70     "engine/conflict_util.h",
71     "engine/directory_commit_contribution.cc",
72     "engine/directory_commit_contribution.h",
73     "engine/directory_commit_contributor.cc",
74     "engine/directory_commit_contributor.h",
75     "engine/directory_update_handler.cc",
76     "engine/directory_update_handler.h",
77     "engine/entity_tracker.cc",
78     "engine/entity_tracker.h",
79     "engine/get_commit_ids.cc",
80     "engine/get_commit_ids.h",
81     "engine/get_updates_delegate.cc",
82     "engine/get_updates_delegate.h",
83     "engine/get_updates_processor.cc",
84     "engine/get_updates_processor.h",
85     "engine/model_type_entity.cc",
86     "engine/model_type_entity.h",
87     "engine/model_type_processor.cc",
88     "engine/model_type_processor.h",
89     "engine/model_type_processor_impl.cc",
90     "engine/model_type_processor_impl.h",
91     "engine/model_type_worker.cc",
92     "engine/model_type_worker.h",
93     "engine/net/server_connection_manager.cc",
94     "engine/net/server_connection_manager.h",
95     "engine/net/url_translator.cc",
96     "engine/net/url_translator.h",
97     "engine/non_blocking_type_commit_contribution.cc",
98     "engine/non_blocking_type_commit_contribution.h",
99     "engine/nudge_handler.cc",
100     "engine/nudge_handler.h",
101     "engine/nudge_source.cc",
102     "engine/nudge_source.h",
103     "engine/process_updates_util.cc",
104     "engine/process_updates_util.h",
105     "engine/sync_cycle_event.cc",
106     "engine/sync_cycle_event.h",
107     "engine/sync_engine_event_listener.cc",
108     "engine/sync_engine_event_listener.h",
109     "engine/sync_scheduler.cc",
110     "engine/sync_scheduler.h",
111     "engine/sync_scheduler_impl.cc",
112     "engine/sync_scheduler_impl.h",
113     "engine/syncer.cc",
114     "engine/syncer.h",
115     "engine/syncer_proto_util.cc",
116     "engine/syncer_proto_util.h",
117     "engine/syncer_types.h",
118     "engine/syncer_util.cc",
119     "engine/syncer_util.h",
120     "engine/traffic_logger.cc",
121     "engine/traffic_logger.h",
122     "engine/update_applicator.cc",
123     "engine/update_applicator.h",
124     "engine/update_handler.cc",
125     "engine/update_handler.h",
126     "internal_api/attachments/attachment_downloader.cc",
127     "internal_api/attachments/attachment_downloader_impl.cc",
128     "internal_api/attachments/attachment_service.cc",
129     "internal_api/attachments/attachment_service_impl.cc",
130     "internal_api/attachments/attachment_service_proxy.cc",
131     "internal_api/attachments/attachment_service_proxy_for_test.cc",
132     "internal_api/attachments/attachment_store_frontend.cc",
133     "internal_api/attachments/attachment_uploader.cc",
134     "internal_api/attachments/attachment_uploader_impl.cc",
135     "internal_api/attachments/attachment_util.cc",
136     "internal_api/attachments/fake_attachment_downloader.cc",
137     "internal_api/attachments/fake_attachment_uploader.cc",
138     "internal_api/attachments/in_memory_attachment_store.cc",
139     "internal_api/attachments/on_disk_attachment_store.cc",
140     "internal_api/attachments/task_queue.cc",
141     "internal_api/base_node.cc",
142     "internal_api/base_transaction.cc",
143     "internal_api/change_record.cc",
144     "internal_api/change_reorder_buffer.cc",
145     "internal_api/change_reorder_buffer.h",
146     "internal_api/debug_info_event_listener.cc",
147     "internal_api/debug_info_event_listener.h",
148     "internal_api/delete_journal.cc",
149     "internal_api/events/clear_server_data_request_event.cc",
150     "internal_api/events/clear_server_data_response_event.cc",
151     "internal_api/events/commit_request_event.cc",
152     "internal_api/events/commit_response_event.cc",
153     "internal_api/events/configure_get_updates_request_event.cc",
154     "internal_api/events/get_updates_response_event.cc",
155     "internal_api/events/normal_get_updates_request_event.cc",
156     "internal_api/events/poll_get_updates_request_event.cc",
157     "internal_api/events/protocol_event.cc",
158     "internal_api/http_bridge.cc",
159     "internal_api/http_bridge_network_resources.cc",
160     "internal_api/internal_components_factory_impl.cc",
161     "internal_api/js_mutation_event_observer.cc",
162     "internal_api/js_mutation_event_observer.h",
163     "internal_api/js_sync_encryption_handler_observer.cc",
164     "internal_api/js_sync_encryption_handler_observer.h",
165     "internal_api/js_sync_manager_observer.cc",
166     "internal_api/js_sync_manager_observer.h",
167     "internal_api/protocol_event_buffer.cc",
168     "internal_api/protocol_event_buffer.h",
169     "internal_api/public/attachments/attachment_downloader.h",
170     "internal_api/public/attachments/attachment_downloader_impl.h",
171     "internal_api/public/attachments/attachment_service.h",
172     "internal_api/public/attachments/attachment_service_impl.h",
173     "internal_api/public/attachments/attachment_service_proxy.h",
174     "internal_api/public/attachments/attachment_service_proxy_for_test.h",
175     "internal_api/public/attachments/attachment_store_frontend.h",
176     "internal_api/public/attachments/attachment_uploader.h",
177     "internal_api/public/attachments/attachment_uploader_impl.h",
178     "internal_api/public/attachments/attachment_util.h",
179     "internal_api/public/attachments/fake_attachment_downloader.h",
180     "internal_api/public/attachments/fake_attachment_uploader.h",
181     "internal_api/public/attachments/in_memory_attachment_store.h",
182     "internal_api/public/attachments/on_disk_attachment_store.h",
183     "internal_api/public/base/attachment_id_proto.cc",
184     "internal_api/public/base/attachment_id_proto.h",
185     "internal_api/public/base/cancelation_observer.cc",
186     "internal_api/public/base/cancelation_observer.h",
187     "internal_api/public/base/cancelation_signal.cc",
188     "internal_api/public/base/cancelation_signal.h",
189     "internal_api/public/base/enum_set.h",
190     "internal_api/public/base/invalidation_interface.cc",
191     "internal_api/public/base/invalidation_interface.h",
192     "internal_api/public/base/model_type.h",
193     "internal_api/public/base/node_ordinal.cc",
194     "internal_api/public/base/node_ordinal.h",
195     "internal_api/public/base/ordinal.h",
196     "internal_api/public/base/progress_marker_map.cc",
197     "internal_api/public/base/progress_marker_map.h",
198     "internal_api/public/base/unique_position.cc",
199     "internal_api/public/base/unique_position.h",
200     "internal_api/public/base_node.h",
201     "internal_api/public/base_transaction.h",
202     "internal_api/public/change_record.h",
203     "internal_api/public/configure_reason.h",
204     "internal_api/public/data_type_association_stats.cc",
205     "internal_api/public/data_type_association_stats.h",
206     "internal_api/public/data_type_debug_info_listener.cc",
207     "internal_api/public/data_type_debug_info_listener.h",
208     "internal_api/public/delete_journal.h",
209     "internal_api/public/engine/model_safe_worker.cc",
210     "internal_api/public/engine/model_safe_worker.h",
211     "internal_api/public/engine/passive_model_worker.cc",
212     "internal_api/public/engine/passive_model_worker.h",
213     "internal_api/public/engine/polling_constants.cc",
214     "internal_api/public/engine/polling_constants.h",
215     "internal_api/public/engine/sync_status.cc",
216     "internal_api/public/engine/sync_status.h",
217     "internal_api/public/events/clear_server_data_request_event.h",
218     "internal_api/public/events/clear_server_data_response_event.h",
219     "internal_api/public/events/commit_request_event.h",
220     "internal_api/public/events/commit_response_event.h",
221     "internal_api/public/events/configure_get_updates_request_event.h",
222     "internal_api/public/events/get_updates_response_event.h",
223     "internal_api/public/events/normal_get_updates_request_event.h",
224     "internal_api/public/events/poll_get_updates_request_event.h",
225     "internal_api/public/events/protocol_event.h",
226     "internal_api/public/http_bridge.h",
227     "internal_api/public/http_bridge_network_resources.h",
228     "internal_api/public/http_post_provider_factory.h",
229     "internal_api/public/http_post_provider_interface.h",
230     "internal_api/public/internal_components_factory.h",
231     "internal_api/public/internal_components_factory_impl.h",
232     "internal_api/public/network_resources.h",
233     "internal_api/public/non_blocking_sync_common.cc",
234     "internal_api/public/non_blocking_sync_common.h",
235     "internal_api/public/read_node.h",
236     "internal_api/public/read_transaction.h",
237     "internal_api/public/sessions/commit_counters.cc",
238     "internal_api/public/sessions/commit_counters.h",
239     "internal_api/public/sessions/model_neutral_state.cc",
240     "internal_api/public/sessions/model_neutral_state.h",
241     "internal_api/public/sessions/status_counters.cc",
242     "internal_api/public/sessions/status_counters.h",
243     "internal_api/public/sessions/sync_session_snapshot.cc",
244     "internal_api/public/sessions/sync_session_snapshot.h",
245     "internal_api/public/sessions/type_debug_info_observer.cc",
246     "internal_api/public/sessions/type_debug_info_observer.h",
247     "internal_api/public/sessions/update_counters.cc",
248     "internal_api/public/sessions/update_counters.h",
249     "internal_api/public/shutdown_reason.h",
250     "internal_api/public/sync_auth_provider.h",
251     "internal_api/public/sync_context.h",
252     "internal_api/public/sync_context_proxy.h",
253     "internal_api/public/sync_encryption_handler.cc",
254     "internal_api/public/sync_encryption_handler.h",
255     "internal_api/public/sync_manager.cc",
256     "internal_api/public/sync_manager.h",
257     "internal_api/public/sync_manager_factory.h",
258     "internal_api/public/user_share.h",
259     "internal_api/public/util/experiments.h",
260     "internal_api/public/util/immutable.h",
261     "internal_api/public/util/sync_db_util.h",
262     "internal_api/public/util/sync_string_conversions.cc",
263     "internal_api/public/util/sync_string_conversions.h",
264     "internal_api/public/util/syncer_error.cc",
265     "internal_api/public/util/syncer_error.h",
266     "internal_api/public/util/unrecoverable_error_handler.h",
267     "internal_api/public/util/unrecoverable_error_info.cc",
268     "internal_api/public/util/unrecoverable_error_info.h",
269     "internal_api/public/util/weak_handle.cc",
270     "internal_api/public/util/weak_handle.h",
271     "internal_api/public/write_node.h",
272     "internal_api/public/write_transaction.h",
273     "internal_api/read_node.cc",
274     "internal_api/read_transaction.cc",
275     "internal_api/sync_backup_manager.cc",
276     "internal_api/sync_backup_manager.h",
277     "internal_api/sync_context.cc",
278     "internal_api/sync_context_proxy.cc",
279     "internal_api/sync_context_proxy_impl.cc",
280     "internal_api/sync_context_proxy_impl.h",
281     "internal_api/sync_db_util.cc",
282     "internal_api/sync_encryption_handler_impl.cc",
283     "internal_api/sync_encryption_handler_impl.h",
284     "internal_api/sync_manager_factory.cc",
285     "internal_api/sync_manager_impl.cc",
286     "internal_api/sync_manager_impl.h",
287     "internal_api/sync_rollback_manager.cc",
288     "internal_api/sync_rollback_manager.h",
289     "internal_api/sync_rollback_manager_base.cc",
290     "internal_api/sync_rollback_manager_base.h",
291     "internal_api/syncapi_internal.cc",
292     "internal_api/syncapi_internal.h",
293     "internal_api/syncapi_server_connection_manager.cc",
294     "internal_api/syncapi_server_connection_manager.h",
295     "internal_api/user_share.cc",
296     "internal_api/write_node.cc",
297     "internal_api/write_transaction.cc",
298     "js/js_backend.h",
299     "js/js_controller.h",
300     "js/js_event_details.cc",
301     "js/js_event_details.h",
302     "js/js_event_handler.h",
303     "js/sync_js_controller.cc",
304     "js/sync_js_controller.h",
305     "protocol/proto_enum_conversions.cc",
306     "protocol/proto_enum_conversions.h",
307     "protocol/proto_value_conversions.cc",
308     "protocol/proto_value_conversions.h",
309     "protocol/sync_protocol_error.cc",
310     "protocol/sync_protocol_error.h",
311     "sessions/data_type_tracker.cc",
312     "sessions/data_type_tracker.h",
313     "sessions/debug_info_getter.h",
314     "sessions/directory_type_debug_info_emitter.cc",
315     "sessions/directory_type_debug_info_emitter.h",
316     "sessions/model_type_registry.cc",
317     "sessions/model_type_registry.h",
318     "sessions/nudge_tracker.cc",
319     "sessions/nudge_tracker.h",
320     "sessions/status_controller.cc",
321     "sessions/status_controller.h",
322     "sessions/sync_session.cc",
323     "sessions/sync_session.h",
324     "sessions/sync_session_context.cc",
325     "sessions/sync_session_context.h",
326     "syncable/deferred_on_disk_directory_backing_store.cc",
327     "syncable/deferred_on_disk_directory_backing_store.h",
328     "syncable/dir_open_result.h",
329     "syncable/directory.cc",
330     "syncable/directory.h",
331     "syncable/directory_backing_store.cc",
332     "syncable/directory_backing_store.h",
333     "syncable/directory_change_delegate.h",
334     "syncable/entry.cc",
335     "syncable/entry.h",
336     "syncable/entry_kernel.cc",
337     "syncable/entry_kernel.h",
338     "syncable/in_memory_directory_backing_store.cc",
339     "syncable/in_memory_directory_backing_store.h",
340     "syncable/invalid_directory_backing_store.cc",
341     "syncable/invalid_directory_backing_store.h",
342     "syncable/metahandle_set.h",
343     "syncable/model_neutral_mutable_entry.cc",
344     "syncable/model_neutral_mutable_entry.h",
345     "syncable/model_type.cc",
346     "syncable/mutable_entry.cc",
347     "syncable/mutable_entry.h",
348     "syncable/nigori_handler.cc",
349     "syncable/nigori_handler.h",
350     "syncable/nigori_util.cc",
351     "syncable/nigori_util.h",
352     "syncable/on_disk_directory_backing_store.cc",
353     "syncable/on_disk_directory_backing_store.h",
354     "syncable/parent_child_index.cc",
355     "syncable/parent_child_index.h",
356     "syncable/proto_value_ptr.h",
357     "syncable/scoped_kernel_lock.cc",
358     "syncable/scoped_kernel_lock.h",
359     "syncable/scoped_parent_child_index_updater.cc",
360     "syncable/scoped_parent_child_index_updater.h",
361     "syncable/syncable-inl.h",
362     "syncable/syncable_base_transaction.cc",
363     "syncable/syncable_base_transaction.h",
364     "syncable/syncable_base_write_transaction.cc",
365     "syncable/syncable_base_write_transaction.h",
366     "syncable/syncable_changes_version.h",
367     "syncable/syncable_columns.h",
368     "syncable/syncable_delete_journal.cc",
369     "syncable/syncable_delete_journal.h",
370     "syncable/syncable_enum_conversions.cc",
371     "syncable/syncable_enum_conversions.h",
372     "syncable/syncable_id.cc",
373     "syncable/syncable_id.h",
374     "syncable/syncable_model_neutral_write_transaction.cc",
375     "syncable/syncable_model_neutral_write_transaction.h",
376     "syncable/syncable_proto_util.cc",
377     "syncable/syncable_proto_util.h",
378     "syncable/syncable_read_transaction.cc",
379     "syncable/syncable_read_transaction.h",
380     "syncable/syncable_util.cc",
381     "syncable/syncable_util.h",
382     "syncable/syncable_write_transaction.cc",
383     "syncable/syncable_write_transaction.h",
384     "syncable/transaction_observer.h",
385     "syncable/write_transaction_info.cc",
386     "syncable/write_transaction_info.h",
387     "util/cryptographer.cc",
388     "util/cryptographer.h",
389     "util/data_type_histogram.cc",
390     "util/data_type_histogram.h",
391     "util/encryptor.h",
392     "util/extensions_activity.cc",
393     "util/extensions_activity.h",
394     "util/get_session_name.cc",
395     "util/get_session_name.h",
396     "util/get_session_name_ios.h",
397     "util/get_session_name_ios.mm",
398     "util/get_session_name_linux.cc",
399     "util/get_session_name_linux.h",
400     "util/get_session_name_mac.h",
401     "util/get_session_name_mac.mm",
402     "util/get_session_name_win.cc",
403     "util/get_session_name_win.h",
404     "util/logging.cc",
405     "util/logging.h",
406     "util/nigori.cc",
407     "util/nigori.h",
408     "util/time.cc",
409     "util/time.h",
410   ]
412   configs += [ "//build/config:precompiled_headers" ]
414   public_deps = [
415     "//sync/internal_api/attachments/proto",
416   ]
417   deps = [
418     "//base",
419     "//base:i18n",
420     "//base/third_party/dynamic_annotations",
421     "//crypto",
422     "//google_apis",
423     "//net",
424     "//sql",
425     "//third_party/leveldatabase",
426     "//third_party/zlib",
427     "//url",
428     "//sync/protocol",
429   ]
431   if (is_android) {
432     deps += [ "//sync/android:jni_headers" ]
433     sources += [
434       "android/model_type_helper.cc",
435       "android/model_type_helper.h",
436       "android/sync_jni_registrar.cc",
437       "android/sync_jni_registrar.h",
438     ]
439   }
441   if (is_chromeos) {
442     # Required by get_session_name.cc on Chrome OS.
443     deps += [ "//chromeos" ]
444   }
446   if (is_mac) {
447     libs = [
448       # Required by get_session_name_mac.mm on Mac.
449       "SystemConfiguration.framework",
450     ]
451   }
453   defines = [ "SYNC_IMPLEMENTATION" ]
454   configs += [ "//build/config/compiler:wexit_time_destructors" ]
457 # GYP version: sync/sync_tests.gypi:test_support_sync_core
458 static_library("test_support_sync_core") {
459   testonly = true
460   sources = [
461     "internal_api/public/base/model_type_test_util.cc",
462     "internal_api/public/base/model_type_test_util.h",
463     "js/js_test_util.cc",
464     "js/js_test_util.h",
465     "sessions/test_util.cc",
466     "sessions/test_util.h",
467     "test/callback_counter.h",
468     "test/directory_backing_store_corruption_testing.cc",
469     "test/directory_backing_store_corruption_testing.h",
470     "test/engine/fake_model_worker.cc",
471     "test/engine/fake_model_worker.h",
472     "test/engine/fake_sync_scheduler.cc",
473     "test/engine/fake_sync_scheduler.h",
474     "test/engine/injectable_sync_context_proxy.cc",
475     "test/engine/injectable_sync_context_proxy.h",
476     "test/engine/mock_commit_queue.cc",
477     "test/engine/mock_commit_queue.h",
478     "test/engine/mock_connection_manager.cc",
479     "test/engine/mock_connection_manager.h",
480     "test/engine/mock_model_type_processor.cc",
481     "test/engine/mock_model_type_processor.h",
482     "test/engine/mock_nudge_handler.cc",
483     "test/engine/mock_nudge_handler.h",
484     "test/engine/mock_update_handler.cc",
485     "test/engine/mock_update_handler.h",
486     "test/engine/single_type_mock_server.cc",
487     "test/engine/single_type_mock_server.h",
488     "test/engine/test_directory_setter_upper.cc",
489     "test/engine/test_directory_setter_upper.h",
490     "test/engine/test_id_factory.h",
491     "test/engine/test_syncable_utils.cc",
492     "test/engine/test_syncable_utils.h",
493     "test/fake_encryptor.cc",
494     "test/fake_encryptor.h",
495     "test/fake_sync_encryption_handler.cc",
496     "test/fake_sync_encryption_handler.h",
497     "test/mock_invalidation.cc",
498     "test/mock_invalidation.h",
499     "test/mock_invalidation_tracker.cc",
500     "test/mock_invalidation_tracker.h",
501     "test/null_directory_change_delegate.cc",
502     "test/null_directory_change_delegate.h",
503     "test/null_transaction_observer.cc",
504     "test/null_transaction_observer.h",
505     "test/sessions/mock_debug_info_getter.cc",
506     "test/sessions/mock_debug_info_getter.h",
507     "test/sessions/test_scoped_session_event_listener.h",
508     "test/test_directory_backing_store.cc",
509     "test/test_directory_backing_store.h",
510     "test/test_transaction_observer.cc",
511     "test/test_transaction_observer.h",
512     "test/trackable_mock_invalidation.cc",
513     "test/trackable_mock_invalidation.h",
514     "util/mock_unrecoverable_error_handler.cc",
515     "util/mock_unrecoverable_error_handler.h",
516     "util/test_unrecoverable_error_handler.cc",
517     "util/test_unrecoverable_error_handler.h",
518   ]
520   public_deps = [
521     "//base",
522     "//testing/gmock",
523     "//testing/gtest",
524     "//sync",
525   ]
527   defines = [ "SYNC_TEST" ]
528   configs += [ "//build/config/compiler:wexit_time_destructors" ]
531 # GYP version: sync/sync_tests.gypi:test_support_sync_internal_api
532 static_library("test_support_sync_internal_api") {
533   testonly = true
534   sources = [
535     "internal_api/public/test/fake_sync_manager.h",
536     "internal_api/public/test/null_sync_context_proxy.h",
537     "internal_api/public/test/sync_manager_factory_for_profile_sync_test.h",
538     "internal_api/public/test/test_entry_factory.h",
539     "internal_api/public/test/test_internal_components_factory.h",
540     "internal_api/public/test/test_user_share.h",
541     "internal_api/test/fake_sync_manager.cc",
542     "internal_api/test/null_sync_context_proxy.cc",
543     "internal_api/test/sync_manager_factory_for_profile_sync_test.cc",
544     "internal_api/test/sync_manager_for_profile_sync_test.cc",
545     "internal_api/test/sync_manager_for_profile_sync_test.h",
546     "internal_api/test/test_entry_factory.cc",
547     "internal_api/test/test_internal_components_factory.cc",
548     "internal_api/test/test_user_share.cc",
549   ]
551   public_deps = [
552     "//base",
553     "//testing/gtest",
554     "//sync",
555     ":test_support_sync_core",
556   ]
558   defines = [ "SYNC_TEST" ]
559   configs += [ "//build/config/compiler:wexit_time_destructors" ]
562 # GYP version: sync/sync_tests.gypi:test_support_sync_api
563 static_library("test_support_sync_api") {
564   testonly = true
565   sources = [
566     "api/fake_sync_change_processor.cc",
567     "api/fake_sync_change_processor.h",
568     "api/fake_syncable_service.cc",
569     "api/fake_syncable_service.h",
570     "api/sync_change_processor_wrapper_for_test.cc",
571     "api/sync_change_processor_wrapper_for_test.h",
572     "api/sync_error_factory_mock.cc",
573     "api/sync_error_factory_mock.h",
574   ]
576   defines = [ "SYNC_TEST" ]
578   public_deps = [
579     "//base",
580     "//sync",
581     "//testing/gmock",
582   ]
585 # TODO(GYP): Delete this after we've converted everything to GN.
586 # The _run targets exist only for compatibility w/ GYP.
587 group("sync_unit_tests_run") {
588   testonly = true
589   deps = [
590     ":sync_unit_tests",
591   ]
594 # GYP version: sync/sync_tests.gypi:sync_unit_tests
595 test("sync_unit_tests") {
596   sources = [
597     "api/attachments/attachment_id_unittest.cc",
598     "api/attachments/attachment_metadata_unittest.cc",
599     "api/attachments/attachment_unittest.cc",
600     "api/sync_change_unittest.cc",
601     "api/sync_data_unittest.cc",
602     "api/sync_error_unittest.cc",
603     "api/sync_merge_result_unittest.cc",
604     "engine/apply_control_data_updates_unittest.cc",
605     "engine/backoff_delay_provider_unittest.cc",
606     "engine/directory_commit_contribution_unittest.cc",
607     "engine/directory_update_handler_unittest.cc",
608     "engine/entity_tracker_unittest.cc",
609     "engine/get_updates_processor_unittest.cc",
610     "engine/model_type_entity_unittest.cc",
611     "engine/model_type_processor_impl_unittest.cc",
612     "engine/model_type_worker_unittest.cc",
613     "engine/sync_scheduler_unittest.cc",
614     "engine/syncer_proto_util_unittest.cc",
615     "engine/syncer_unittest.cc",
616     "engine/syncer_util_unittest.cc",
617     "internal_api/attachments/attachment_downloader_impl_unittest.cc",
618     "internal_api/attachments/attachment_service_impl_unittest.cc",
619     "internal_api/attachments/attachment_service_proxy_unittest.cc",
620     "internal_api/attachments/attachment_store_frontend_unittest.cc",
621     "internal_api/attachments/attachment_store_test_template.h",
622     "internal_api/attachments/attachment_uploader_impl_unittest.cc",
623     "internal_api/attachments/fake_attachment_downloader_unittest.cc",
624     "internal_api/attachments/fake_attachment_uploader_unittest.cc",
625     "internal_api/attachments/in_memory_attachment_store_unittest.cc",
626     "internal_api/attachments/on_disk_attachment_store_unittest.cc",
627     "internal_api/attachments/task_queue_unittest.cc",
628     "internal_api/debug_info_event_listener_unittest.cc",
629     "internal_api/http_bridge_unittest.cc",
630     "internal_api/js_mutation_event_observer_unittest.cc",
631     "internal_api/js_sync_encryption_handler_observer_unittest.cc",
632     "internal_api/js_sync_manager_observer_unittest.cc",
633     "internal_api/protocol_event_buffer_unittest.cc",
634     "internal_api/public/base/attachment_id_proto_unittest.cc",
635     "internal_api/public/base/cancelation_signal_unittest.cc",
636     "internal_api/public/base/enum_set_unittest.cc",
637     "internal_api/public/base/node_ordinal_unittest.cc",
638     "internal_api/public/base/ordinal_unittest.cc",
639     "internal_api/public/base/unique_position_unittest.cc",
640     "internal_api/public/change_record_unittest.cc",
641     "internal_api/public/engine/model_safe_worker_unittest.cc",
642     "internal_api/public/sessions/sync_session_snapshot_unittest.cc",
643     "internal_api/public/util/immutable_unittest.cc",
644     "internal_api/public/util/weak_handle_unittest.cc",
645     "internal_api/sync_backup_manager_unittest.cc",
646     "internal_api/sync_context_proxy_impl_unittest.cc",
647     "internal_api/sync_encryption_handler_impl_unittest.cc",
648     "internal_api/sync_manager_impl_unittest.cc",
649     "internal_api/sync_rollback_manager_base_unittest.cc",
650     "internal_api/sync_rollback_manager_unittest.cc",
651     "internal_api/syncapi_server_connection_manager_unittest.cc",
652     "js/js_event_details_unittest.cc",
653     "js/sync_js_controller_unittest.cc",
654     "protocol/proto_enum_conversions_unittest.cc",
655     "protocol/proto_value_conversions_unittest.cc",
656     "sessions/model_type_registry_unittest.cc",
657     "sessions/nudge_tracker_unittest.cc",
658     "sessions/status_controller_unittest.cc",
659     "syncable/deferred_on_disk_directory_backing_store_unittest.cc",
660     "syncable/directory_backing_store_unittest.cc",
661     "syncable/directory_unittest.cc",
662     "syncable/directory_unittest.h",
663     "syncable/entry_kernel_unittest.cc",
664     "syncable/model_type_unittest.cc",
665     "syncable/nigori_util_unittest.cc",
666     "syncable/parent_child_index_unittest.cc",
667     "syncable/proto_value_ptr_unittest.cc",
668     "syncable/syncable_enum_conversions_unittest.cc",
669     "syncable/syncable_id_unittest.cc",
670     "syncable/syncable_unittest.cc",
671     "syncable/syncable_util_unittest.cc",
672     "util/cryptographer_unittest.cc",
673     "util/data_type_histogram_unittest.cc",
674     "util/get_session_name_unittest.cc",
675     "util/nigori_unittest.cc",
676     "util/protobuf_unittest.cc",
677   ]
679   configs += [ "//build/config:precompiled_headers" ]
681   data = [
682     "//chrome/test/data/sync/",
683     "//net/tools/testserver/",
684     "//third_party/pyftpdlib/",
685     "//third_party/pywebsocket/",
686     "//third_party/tlslite/",
687     "$root_out_dir/pyproto/google/",
688   ]
690   if (is_android) {
691     data += [ "$root_out_dir/locales/en-US.pak" ]
692   }
694   deps = [
695     ":test_support_sync_core",
696     ":test_support_sync_internal_api",
697     "//base",
698     "//base/allocator",
699     "//base/test:run_all_unittests",
700     "//google_apis",
701     "//google_apis:test_support",
702     "//net",
703     "//net:test_support",
704     "//sql",
705     "//sql:test_support",
706     "//sync",
707     "//sync/protocol",
708     "//testing/gmock",
709     "//testing/gtest",
710     "//third_party/leveldatabase",
711     "//third_party/protobuf:protobuf_lite",
712     "//third_party/zlib",
713   ]
715   if (is_android) {
716     isolate_file = "sync_unit_tests.isolate"
717   }
719   if (is_chromeos) {
720     # Required by get_session_name_unittest.cc on Chrome OS.
721     deps += [ "//chromeos" ]
722   }
724   if (is_ios) {
725     sources -= [ "internal_api/http_bridge_unittest.cc" ]
726   }
728   defines = [ "SYNC_TEST" ]
731 # GYP version: sync/sync_tests.gypi:test_support_sync_fake_server
732 static_library("test_support_sync_fake_server") {
733   testonly = true
734   sources = [
735     "test/fake_server/bookmark_entity.cc",
736     "test/fake_server/bookmark_entity.h",
737     "test/fake_server/bookmark_entity_builder.cc",
738     "test/fake_server/bookmark_entity_builder.h",
739     "test/fake_server/entity_builder_factory.cc",
740     "test/fake_server/entity_builder_factory.h",
741     "test/fake_server/fake_server.cc",
742     "test/fake_server/fake_server.h",
743     "test/fake_server/fake_server_entity.cc",
744     "test/fake_server/fake_server_entity.h",
745     "test/fake_server/fake_server_http_post_provider.cc",
746     "test/fake_server/fake_server_http_post_provider.h",
747     "test/fake_server/fake_server_network_resources.cc",
748     "test/fake_server/fake_server_network_resources.h",
749     "test/fake_server/fake_server_verifier.cc",
750     "test/fake_server/fake_server_verifier.h",
751     "test/fake_server/permanent_entity.cc",
752     "test/fake_server/permanent_entity.h",
753     "test/fake_server/sessions_hierarchy.cc",
754     "test/fake_server/sessions_hierarchy.h",
755     "test/fake_server/tombstone_entity.cc",
756     "test/fake_server/tombstone_entity.h",
757     "test/fake_server/unique_client_entity.cc",
758     "test/fake_server/unique_client_entity.h",
759   ]
761   deps = [
762     "//base",
763     "//net",
764     "//testing/gtest",
765     "//third_party/protobuf:protobuf_lite",
766     "//sync",
767     "//url",
768   ]
770   forward_dependent_configs_from = [ "//third_party/protobuf:protobuf_lite" ]
772   configs += [ "//build/config/compiler:wexit_time_destructors" ]
775 # GYP version: sync/sync_tests.gypi:test_support_sync_testserver
776 static_library("test_support_sync_testserver") {
777   testonly = true
778   sources = [
779     "test/local_sync_test_server.cc",
780     "test/local_sync_test_server.h",
781   ]
783   configs += [ "//build/config/compiler:wexit_time_destructors" ]
785   public_deps = [
786     "//base",
787     "//net:test_support",
788   ]
789   deps = [
790     ":sync",
791     # The sync test server uses Python modules generated by the sync protos.
792     #  '../third_party/protobuf/protobuf.gyp:py_proto',  # TODO(GYP)
793   ]
796 if (!is_ios) {
797   # GYP version: sync/sync_tests.gypi:run_sync_testserver
798   executable("run_sync_testserver") {
799     testonly = true
800     sources = [
801       "tools/testserver/run_sync_testserver.cc",
802     ]
804     deps = [
805       ":test_support_sync_testserver",
806       "//base",
807       "//base/test:test_support",
808       "//build/config/sanitizers:deps",
809       "//net:test_support",
810       "//testing/gtest",
811     ]
812   }
815 if (is_android) {
816   import("//build/config/android/rules.gni")
818   # GYP: //sync/sync_tests.gypi:fake_server_jni
819   generate_jni("fake_server_jni") {
820     testonly = true
821     jni_package = "sync/test/fake_server"
822     sources = [
823       "//chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java",
824     ]
825   }
827   # GYP: //sync/sync_tests.gypi:sync_java_test_support
828   android_library("sync_java_test_support") {
829     testonly = true
830     deps = [
831       "android:sync_java",
832       "//base:base_java",
833       "//base:base_java_test_support",
834       "//third_party/jsr-305:jsr_305_javalib",
835     ]
836     DEPRECATED_java_in_dir = "test/android/javatests/src"
837   }
839   # GYP: //sync/sync_tests.gypi:test_support_sync_fake_server_android
840   static_library("test_support_sync_fake_server_android") {
841     testonly = true
842     sources = [
843       "test/fake_server/android/fake_server_helper_android.cc",
844       "test/fake_server/android/fake_server_helper_android.h",
845     ]
846     deps = [
847       ":fake_server_jni",
848       ":sync_core",
849       ":test_support_sync_fake_server",
850       "//base",
851       "//sync/protocol:protocol",
852       "//testing/gtest",
853       "//url:url",
854     ]
855   }