Home | History | Annotate | Download | only in sync
      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