Home | History | Annotate | Download | only in remoting
      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.
      4 
      5 {
      6   'targets': [
      7     {
      8       'target_name': 'remoting_test_common',
      9       'type': 'static_library',
     10       'dependencies': [
     11         '../base/base.gyp:base',
     12         '../net/net.gyp:net_test_support',
     13         '../testing/gmock.gyp:gmock',
     14         '../testing/gtest.gyp:gtest',
     15         'remoting_base',
     16         'remoting_client',
     17         'remoting_host',
     18         'remoting_protocol',
     19         'remoting_resources',
     20       ],
     21       'sources': [
     22         'host/fake_desktop_capturer.cc',
     23         'host/fake_desktop_capturer.h',
     24         'host/fake_desktop_environment.cc',
     25         'host/fake_desktop_environment.h',
     26         'host/fake_host_status_monitor.h',
     27         'host/fake_mouse_cursor_monitor.cc',
     28         'host/fake_mouse_cursor_monitor.h',
     29         'host/policy_hack/fake_policy_watcher.cc',
     30         'host/policy_hack/fake_policy_watcher.h',
     31         'host/policy_hack/mock_policy_callback.cc',
     32         'host/policy_hack/mock_policy_callback.h',
     33         'protocol/fake_authenticator.cc',
     34         'protocol/fake_authenticator.h',
     35         'protocol/fake_datagram_socket.cc',
     36         'protocol/fake_datagram_socket.h',
     37         'protocol/fake_session.cc',
     38         'protocol/fake_session.h',
     39         'protocol/fake_stream_socket.cc',
     40         'protocol/fake_stream_socket.h',
     41         'protocol/protocol_mock_objects.cc',
     42         'protocol/protocol_mock_objects.h',
     43         'signaling/fake_signal_strategy.cc',
     44         'signaling/fake_signal_strategy.h',
     45         'signaling/mock_signal_strategy.cc',
     46         'signaling/mock_signal_strategy.h',
     47         'test/fake_network_dispatcher.cc',
     48         'test/fake_network_dispatcher.h',
     49         'test/fake_network_manager.cc',
     50         'test/fake_network_manager.h',
     51         'test/fake_port_allocator.cc',
     52         'test/fake_port_allocator.h',
     53         'test/fake_socket_factory.cc',
     54         'test/fake_socket_factory.h',
     55         'test/leaky_bucket.cc',
     56         'test/leaky_bucket.h',
     57       ],
     58       'conditions': [
     59         ['enable_remoting_host == 0', {
     60           'dependencies!': [
     61             'remoting_host',
     62           ],
     63           'sources/': [
     64             ['exclude', '^host/'],
     65           ]
     66         }],
     67       ],
     68     },
     69 
     70     # Remoting unit tests
     71     {
     72       'target_name': 'remoting_unittests',
     73       'type': '<(gtest_target_type)',
     74       'dependencies': [
     75         '../base/base.gyp:base',
     76         '../base/base.gyp:base_i18n',
     77         '../base/base.gyp:test_support_base',
     78         '../ipc/ipc.gyp:ipc',
     79         '../net/net.gyp:net_test_support',
     80         '../ppapi/ppapi.gyp:ppapi_cpp',
     81         '../testing/gmock.gyp:gmock',
     82         '../testing/gtest.gyp:gtest',
     83         '../third_party/libyuv/libyuv.gyp:libyuv',
     84         '../third_party/webrtc/modules/modules.gyp:desktop_capture',
     85         '../ui/base/ui_base.gyp:ui_base',
     86         '../ui/gfx/gfx.gyp:gfx',
     87         '../ui/gfx/gfx.gyp:gfx_geometry',
     88         'remoting_base',
     89         'remoting_breakpad',
     90         'remoting_client',
     91         'remoting_client_plugin',
     92         'remoting_host',
     93         'remoting_host_setup_base',
     94         'remoting_it2me_host_static',
     95         'remoting_native_messaging_base',
     96         'remoting_protocol',
     97         'remoting_resources',
     98         'remoting_test_common',
     99       ],
    100       'defines': [
    101         'VERSION=<(version_full)',
    102       ],
    103       'include_dirs': [
    104         '../testing/gmock/include',
    105       ],
    106       'sources': [
    107         'base/auth_token_util_unittest.cc',
    108         'base/auto_thread_task_runner_unittest.cc',
    109         'base/auto_thread_unittest.cc',
    110         'base/breakpad_win_unittest.cc',
    111         'base/capabilities_unittest.cc',
    112         'base/compound_buffer_unittest.cc',
    113         'base/rate_counter_unittest.cc',
    114         'base/resources_unittest.cc',
    115         'base/rsa_key_pair_unittest.cc',
    116         'base/run_all_unittests.cc',
    117         'base/running_average_unittest.cc',
    118         'base/test_rsa_key_pair.h',
    119         'base/typed_buffer_unittest.cc',
    120         'base/util_unittest.cc',
    121         'client/audio_player_unittest.cc',
    122         'client/client_status_logger_unittest.cc',
    123         'client/key_event_mapper_unittest.cc',
    124         'client/plugin/normalizing_input_filter_cros_unittest.cc',
    125         'client/plugin/normalizing_input_filter_mac_unittest.cc',
    126         'client/server_log_entry_client_unittest.cc',
    127         'codec/audio_encoder_opus_unittest.cc',
    128         'codec/codec_test.cc',
    129         'codec/codec_test.h',
    130         'codec/video_decoder_vpx_unittest.cc',
    131         'codec/video_encoder_helper_unittest.cc',
    132         'codec/video_encoder_verbatim_unittest.cc',
    133         'codec/video_encoder_vpx_unittest.cc',
    134         'host/audio_silence_detector_unittest.cc',
    135         'host/branding.cc',
    136         'host/branding.h',
    137         'host/capture_scheduler_unittest.cc',
    138         'host/chromeos/aura_desktop_capturer_unittest.cc',
    139         'host/chromoting_host_context_unittest.cc',
    140         'host/chromoting_host_unittest.cc',
    141         'host/client_session_unittest.cc',
    142         'host/config_file_watcher_unittest.cc',
    143         'host/daemon_process_unittest.cc',
    144         'host/desktop_process_unittest.cc',
    145         'host/desktop_shape_tracker_unittest.cc',
    146         'host/fake_desktop_capturer.cc',
    147         'host/fake_desktop_capturer.h',
    148         'host/fake_host_extension.cc',
    149         'host/fake_host_extension.h',
    150         'host/fake_host_status_monitor.h',
    151         'host/gnubby_auth_handler_posix_unittest.cc',
    152         'host/heartbeat_sender_unittest.cc',
    153         'host/host_change_notification_listener_unittest.cc',
    154         'host/host_extension_session_manager_unittest.cc',
    155         'host/host_mock_objects.cc',
    156         'host/host_status_logger_unittest.cc',
    157         'host/host_status_sender_unittest.cc',
    158         'host/ipc_desktop_environment_unittest.cc',
    159         'host/it2me/it2me_native_messaging_host_unittest.cc',
    160         'host/json_host_config_unittest.cc',
    161         'host/linux/audio_pipe_reader_unittest.cc',
    162         'host/linux/unicode_to_keysym_unittest.cc',
    163         'host/linux/x_server_clipboard_unittest.cc',
    164         'host/local_input_monitor_unittest.cc',
    165         'host/native_messaging/native_messaging_reader_unittest.cc',
    166         'host/native_messaging/native_messaging_writer_unittest.cc',
    167         'host/pairing_registry_delegate_linux_unittest.cc',
    168         'host/pairing_registry_delegate_win_unittest.cc',
    169         'host/pin_hash_unittest.cc',
    170         'host/policy_hack/policy_watcher_unittest.cc',
    171         'host/register_support_host_request_unittest.cc',
    172         'host/remote_input_filter_unittest.cc',
    173         'host/resizing_host_observer_unittest.cc',
    174         'host/screen_resolution_unittest.cc',
    175         'host/server_log_entry_host_unittest.cc',
    176         'host/setup/me2me_native_messaging_host.cc',
    177         'host/setup/me2me_native_messaging_host.h',
    178         'host/setup/me2me_native_messaging_host_unittest.cc',
    179         'host/setup/oauth_helper_unittest.cc',
    180         'host/setup/pin_validator_unittest.cc',
    181         'host/shaped_desktop_capturer_unittest.cc',
    182         'host/token_validator_factory_impl_unittest.cc',
    183         'host/video_frame_recorder_unittest.cc',
    184         'host/video_scheduler_unittest.cc',
    185         'host/win/rdp_client_unittest.cc',
    186         'host/win/worker_process_launcher.cc',
    187         'host/win/worker_process_launcher.h',
    188         'host/win/worker_process_launcher_unittest.cc',
    189         'protocol/authenticator_test_base.cc',
    190         'protocol/authenticator_test_base.h',
    191         'protocol/buffered_socket_writer_unittest.cc',
    192         'protocol/channel_multiplexer_unittest.cc',
    193         'protocol/chromium_socket_factory_unittest.cc',
    194         'protocol/clipboard_echo_filter_unittest.cc',
    195         'protocol/clipboard_filter_unittest.cc',
    196         'protocol/connection_tester.cc',
    197         'protocol/connection_tester.h',
    198         'protocol/connection_to_client_unittest.cc',
    199         'protocol/content_description_unittest.cc',
    200         'protocol/input_event_tracker_unittest.cc',
    201         'protocol/input_filter_unittest.cc',
    202         'protocol/jingle_messages_unittest.cc',
    203         'protocol/jingle_session_unittest.cc',
    204         'protocol/message_decoder_unittest.cc',
    205         'protocol/message_reader_unittest.cc',
    206         'protocol/monitored_video_stub_unittest.cc',
    207         'protocol/mouse_input_filter_unittest.cc',
    208         'protocol/negotiating_authenticator_unittest.cc',
    209         'protocol/network_settings_unittest.cc',
    210         'protocol/pairing_registry_unittest.cc',
    211         'protocol/ppapi_module_stub.cc',
    212         'protocol/ssl_hmac_channel_authenticator_unittest.cc',
    213         'protocol/third_party_authenticator_unittest.cc',
    214         'protocol/v2_authenticator_unittest.cc',
    215         'signaling/fake_signal_strategy.cc',
    216         'signaling/fake_signal_strategy.h',
    217         'signaling/iq_sender_unittest.cc',
    218         'signaling/log_to_server_unittest.cc',
    219         'signaling/server_log_entry_unittest.cc',
    220         'signaling/server_log_entry_unittest.h',
    221       ],
    222       'conditions': [
    223         [ 'OS=="win"', {
    224           'defines': [
    225             '_ATL_NO_EXCEPTIONS',
    226           ],
    227           'include_dirs': [
    228             '../breakpad/src',
    229           ],
    230           'link_settings': {
    231             'libraries': [
    232               '-lrpcrt4.lib',
    233               '-lwtsapi32.lib',
    234             ],
    235           },
    236         }],
    237         [ 'OS=="android"', {
    238           'dependencies!': [
    239             'remoting_client_plugin',
    240           ],
    241         }],
    242         [ 'OS=="android"', {
    243           'dependencies': [
    244             '../testing/android/native_test.gyp:native_test_native_code',
    245           ],
    246         }],
    247         [ 'chromeos==0', {
    248           'sources!': [
    249             'client/plugin/normalizing_input_filter_cros_unittest.cc',
    250             'host/chromeos/aura_desktop_capturer_unittest.cc',
    251           ],
    252         }],
    253         ['enable_remoting_host == 0', {
    254           'dependencies!': [
    255             'remoting_host',
    256             'remoting_host_setup_base',
    257             'remoting_native_messaging_base',
    258           ],
    259           'sources/': [
    260             ['exclude', '^codec/'],
    261             ['exclude', '^host/'],
    262             ['exclude', '^base/resources_unittest\\.cc$'],
    263           ]
    264         }],
    265         ['enable_it2me_host == 0', {
    266           'dependencies!': [
    267             'remoting_it2me_host_static',
    268           ],
    269           'sources/': [
    270             ['exclude', '^host/it2me/'],
    271           ]
    272         }],
    273         [ 'OS == "linux" and use_allocator!="none"', {
    274           'dependencies': [
    275             '../base/allocator/allocator.gyp:allocator',
    276           ],
    277         }],
    278       ],  # end of 'conditions'
    279     },  # end of target 'remoting_unittests'
    280     {
    281       'target_name': 'remoting_browser_test_resources',
    282       'type': 'none',
    283       'variables': {
    284         'zip_script': '../build/android/gyp/zip.py',
    285       },
    286       'copies': [
    287         {
    288           'destination': '<(PRODUCT_DIR)',
    289             'files': [
    290               '<@(remoting_webapp_js_browser_test_files)',
    291             ],
    292         },
    293       ], #end of copies
    294       'actions': [
    295         {
    296           # Store the browser test resources into a zip file so there is a
    297           # consistent filename to reference for build archiving (i.e. in
    298           # FILES.cfg).
    299           'action_name': 'zip browser test resources',
    300           'inputs': [
    301             '<(zip_script)',
    302             '<@(remoting_webapp_js_browser_test_files)'
    303           ],
    304           'outputs': [
    305             '<(PRODUCT_DIR)/remoting-browser-tests.zip',
    306           ],
    307           'action': [
    308             'python',
    309             '<(zip_script)',
    310             '--input-dir', 'webapp/browser_test',
    311             '--output', '<@(_outputs)',
    312            ],
    313         },
    314       ], # end of actions
    315     },  # end of target 'remoting_browser_test_resources'
    316     {
    317       'target_name': 'remoting_webapp_unittest',
    318       'type': 'none',
    319       'variables': {
    320         'output_dir': '<(PRODUCT_DIR)/remoting/unittests',
    321         'webapp_js_files': [
    322           '<@(remoting_webapp_main_html_js_files)',
    323           '<@(remoting_webapp_js_wcs_sandbox_files)',
    324           '<@(remoting_webapp_background_js_files)',
    325         ]
    326       },
    327       'copies': [
    328         {
    329           'destination': '<(output_dir)/qunit',
    330           'files': [
    331             '../third_party/qunit/src/browser_test_harness.js',
    332             '../third_party/qunit/src/qunit.css',
    333             '../third_party/qunit/src/qunit.js',
    334           ],
    335         },
    336         {
    337           'destination': '<(output_dir)/blanketjs',
    338           'files': [
    339             '../third_party/blanketjs/src/blanket.js',
    340             '../third_party/blanketjs/src/qunit_adapter.js',
    341           ],
    342         },
    343         {
    344           'destination': '<(output_dir)/sinonjs',
    345           'files': [
    346             '../third_party/sinonjs/src/sinon.js',
    347             '../third_party/sinonjs/src/sinon-qunit.js',
    348           ],
    349         },
    350         {
    351           'destination': '<(output_dir)',
    352           'files': [
    353             '<@(webapp_js_files)',
    354             '<@(remoting_webapp_unittest_js_files)',
    355             '<@(remoting_webapp_unittest_additional_files)'
    356           ],
    357         },
    358       ],
    359       'actions': [
    360         {
    361           'action_name': 'Build Remoting Webapp unittest.html',
    362           'inputs': [
    363             'webapp/build-html.py',
    364             '<(remoting_webapp_unittest_template_main)',
    365             '<@(webapp_js_files)',
    366             '<@(remoting_webapp_unittest_js_files)'
    367           ],
    368           'outputs': [
    369             '<(output_dir)/unittest.html',
    370           ],
    371           'action': [
    372             'python', 'webapp/build-html.py',
    373             '<@(_outputs)',
    374             '<(remoting_webapp_unittest_template_main)',
    375             # GYP automatically removes subsequent duplicated command line
    376             # arguments.  Therefore, the excludejs flag must be set before the
    377             # instrumentedjs flag or else GYP will ignore the files in the
    378             # exclude list.
    379             '--exclude-js', '<@(remoting_webapp_unittest_exclude_files)',
    380             '--js', '<@(remoting_webapp_unittest_js_files)',
    381             '--instrument-js', '<@(webapp_js_files)',
    382            ],
    383         },
    384       ],
    385     },  # end of target 'remoting_webapp_js_unittest'
    386   ],  # end of targets
    387 
    388   'conditions': [
    389     ['enable_remoting_host==1', {
    390       'targets': [
    391         # Remoting performance tests
    392         {
    393           'target_name': 'remoting_perftests',
    394           'type': '<(gtest_target_type)',
    395           'dependencies': [
    396             '../base/base.gyp:base',
    397             '../base/base.gyp:test_support_base',
    398             '../testing/gtest.gyp:gtest',
    399             '../third_party/webrtc/modules/modules.gyp:desktop_capture',
    400             '../third_party/libjingle/libjingle.gyp:libjingle',
    401             'remoting_base',
    402             'remoting_test_common',
    403           ],
    404           'defines': [
    405             'VERSION=<(version_full)',
    406           ],
    407           'include_dirs': [
    408             '../testing/gmock/include',
    409           ],
    410           'sources': [
    411             'base/run_all_unittests.cc',
    412             'codec/codec_test.cc',
    413             'codec/codec_test.h',
    414             'codec/video_encoder_vpx_perftest.cc',
    415             'test/protocol_perftest.cc',
    416           ],
    417           'conditions': [
    418             [ 'OS=="mac" or (OS=="linux" and chromeos==0)', {
    419               # RunAllTests calls chrome::RegisterPathProvider() under Mac and
    420               # Linux, so we need the chrome_common.gypi dependency.
    421               'dependencies': [
    422                 '../chrome/common_constants.gyp:common_constants',
    423               ],
    424             }],
    425             [ 'OS=="android"', {
    426               'dependencies': [
    427                 '../testing/android/native_test.gyp:native_test_native_code',
    428               ],
    429             }],
    430             [ 'OS == "linux" and use_allocator!="none"', {
    431               'dependencies': [
    432                 '../base/allocator/allocator.gyp:allocator',
    433               ],
    434             }],
    435           ],  # end of 'conditions'
    436         },  # end of target 'remoting_perftests'
    437       ]
    438     }]
    439   ]
    440 }
    441