# Copyright 2015 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# NPLB is "No Platform Left Behind," the certification test suite for Starboard
# implementations.

{
  'targets': [
    {
      'msvs_disabled_warnings': [4100, 4189, 4456],
      'target_name': 'nplb',
      'type': '<(gtest_target_type)',
      # Enable exceptions to test nothrow delete operator.
      'cflags_cc!': ['-fno-exceptions' ],
      'cflags_cc': ['-fexceptions' ],
      'msvs_settings': {
          'VCCLCompilerTool': {
              'AdditionalOptions': [
                  '/EHsc',  # C++ exceptions
              ],
          },
      },
      'defines': [
        # This allows the tests to include internal only header files.
        'STARBOARD_IMPLEMENTATION',
      ],
      'sources': [
        '<(DEPTH)/starboard/common/test_main.cc',
        '<(DEPTH)/starboard/testing/fake_graphics_context_provider.cc',
        '<(DEPTH)/starboard/testing/fake_graphics_context_provider.h',
        'accessibility_test.cc',
        'align_test.cc',
        'atomic_base_test.cc',
        'atomic_test.cc',
        'audio_sink_create_test.cc',
        'audio_sink_destroy_test.cc',
        'audio_sink_get_max_channels_test.cc',
        'audio_sink_get_min_buffer_size_in_frames_test.cc',
        'audio_sink_get_nearest_supported_sample_frequency_test.cc',
        'audio_sink_helpers.cc',
        'audio_sink_helpers.h',
        'audio_sink_is_audio_frame_storage_type_supported_test.cc',
        'audio_sink_is_audio_sample_type_supported_test.cc',
        'audio_sink_test.cc',
        'blitter_blit_rect_to_rect_test.cc',
        'blitter_blit_rect_to_rect_tiled_test.cc',
        'blitter_blit_rects_to_rects_test.cc',
        'blitter_create_context_test.cc',
        'blitter_create_default_device_test.cc',
        'blitter_create_pixel_data_test.cc',
        'blitter_create_render_target_surface_test.cc',
        'blitter_create_surface_from_pixel_data_test.cc',
        'blitter_create_swap_chain_from_window_test.cc',
        'blitter_destroy_context_test.cc',
        'blitter_destroy_device_test.cc',
        'blitter_destroy_pixel_data_test.cc',
        'blitter_destroy_surface_test.cc',
        'blitter_destroy_swap_chain_test.cc',
        'blitter_download_surface_pixels_test.cc',
        'blitter_fill_rect_test.cc',
        'blitter_flip_swap_chain_test.cc',
        'blitter_flush_context_test.cc',
        'blitter_get_max_contexts_test.cc',
        'blitter_get_pixel_data_pitch_in_bytes_test.cc',
        'blitter_get_pixel_data_pointer_test.cc',
        'blitter_get_render_target_from_surface_test.cc',
        'blitter_get_render_target_from_swap_chain_test.cc',
        'blitter_get_surface_info_test.cc',
        'blitter_helpers.cc',
        'blitter_is_pixel_format_supported_by_download_surface_pixels_test.cc',
        'blitter_is_pixel_format_supported_by_pixel_data_test.cc',
        'blitter_is_pixel_format_supported_by_render_target_surface_test.cc',
        'blitter_set_blending_test.cc',
        'blitter_set_modulate_blits_with_color_test.cc',
        'blitter_set_render_target_test.cc',
        'blitter_set_scissor_test.cc',
        'byte_swap_test.cc',
        'char_is_signed_test.cc',
        'character_is_alphanumeric_test.cc',
        'character_is_digit_test.cc',
        'character_is_hex_digit_test.cc',
        'character_is_space_test.cc',
        'character_is_upper_test.cc',
        'character_to_lower_test.cc',
        'character_to_upper_test.cc',
        'condition_variable_broadcast_test.cc',
        'condition_variable_create_test.cc',
        'condition_variable_destroy_test.cc',
        'condition_variable_signal_test.cc',
        'condition_variable_wait_test.cc',
        'condition_variable_wait_timed_test.cc',
        'configuration_test.cc',
        'cpu_features_get_test.cc',
        'cryptography_create_transformer_test.cc',
        'cryptography_helpers.cc',
        'cryptography_helpers.h',
        'cryptography_transform_test.cc',
        'cryptography_transform_gcm_test.cc',
        'directory_can_open_test.cc',
        'directory_close_test.cc',
        'directory_create_test.cc',
        'directory_get_next_test.cc',
        'directory_open_test.cc',
        'double_absolute_test.cc',
        'double_exponent_test.cc',
        'double_floor_test.cc',
        'double_is_finite_test.cc',
        'double_is_nan_test.cc',
        'drm_create_system_test.cc',
        'drm_get_metrics_test.cc',
        'drm_helpers.cc',
        'drm_helpers.h',
        'drm_is_server_certificate_updatable_test.cc',
        'drm_session_test.cc',
        'drm_update_server_certificate_test.cc',
        'egl_test.cc',
        'extern_c_test.cc',
        'file_atomic_replace_test.cc',
        'file_can_open_test.cc',
        'file_close_test.cc',
        'file_delete_recursive_test.cc',
        'file_delete_test.cc',
        'file_get_info_test.cc',
        'file_get_path_info_test.cc',
        'file_helpers.cc',
        'file_mode_string_to_flags_test.cc',
        'file_open_test.cc',
        'file_read_test.cc',
        'file_read_write_all_test.cc',
        'file_seek_test.cc',
        'file_truncate_test.cc',
        'file_write_test.cc',
        'flat_map_test.cc',
        'gles_test.cc',
        'murmurhash2_test.cc',
        'image_test.cc',
        'include_all.c',
        'include_all_too.c',
        'key_test.cc',
        'log_flush_test.cc',
        'log_format_test.cc',
        'log_is_tty_test.cc',
        'log_raw_dump_stack_test.cc',
        'log_raw_test.cc',
        'log_test.cc',
        # TODO: Separate functions tested by media buffer test into multiple
        # files.
        'media_buffer_test.cc',
        'media_can_play_mime_and_key_system_test.cc',
        'media_configuration_test.cc',
        'memory_align_to_page_size_test.cc',
        'memory_allocate_aligned_test.cc',
        'memory_allocate_test.cc',
        'memory_compare_test.cc',
        'memory_copy_test.cc',
        'memory_deallocate_aligned_test.cc',
        'memory_deallocate_test.cc',
        'memory_find_byte_test.cc',
        'memory_get_stack_bounds_test.cc',
        'memory_is_zero_test.cc',
        'memory_map_test.cc',
        'memory_move_test.cc',
        'memory_reallocate_test.cc',
        'memory_reporter_test.cc',
        'memory_set_test.cc',
        'microphone_close_test.cc',
        'microphone_create_test.cc',
        'microphone_destroy_test.cc',
        'microphone_get_available_test.cc',
        'microphone_is_sample_rate_supported_test.cc',
        'microphone_open_test.cc',
        'microphone_read_test.cc',
        'mutex_acquire_test.cc',
        'mutex_acquire_try_test.cc',
        'mutex_create_test.cc',
        'mutex_destroy_test.cc',
        'once_test.cc',
        'optional_test.cc',
        'player_create_test.cc',
        'player_creation_param_helpers.cc',
        'player_creation_param_helpers.h',
        'player_get_preferred_output_mode_test.cc',
        'player_output_mode_supported_test.cc',
        'player_test_util.cc',
        'player_test_util.h',
        'player_write_sample_test.cc',
        'random_helpers.cc',
        'recursive_mutex_test.cc',
        'rwlock_test.cc',
        'semaphore_test.cc',
        'socket_accept_test.cc',
        'socket_bind_test.cc',
        'socket_clear_last_error_test.cc',
        'socket_connect_test.cc',
        'socket_create_test.cc',
        'socket_destroy_test.cc',
        'socket_get_interface_address_test.cc',
        'socket_get_last_error_test.cc',
        'socket_get_local_address_test.cc',
        'socket_helpers.cc',
        'socket_is_connected_and_idle_test.cc',
        'socket_is_connected_test.cc',
        'socket_join_multicast_group_test.cc',
        'socket_listen_test.cc',
        'socket_receive_from_test.cc',
        'socket_resolve_test.cc',
        'socket_send_to_test.cc',
        'socket_set_options_test.cc',
        'socket_waiter_add_test.cc',
        'socket_waiter_create_test.cc',
        'socket_waiter_destroy_test.cc',
        'socket_waiter_remove_test.cc',
        'socket_waiter_wait_test.cc',
        'socket_waiter_wait_timed_test.cc',
        'socket_waiter_wake_up_test.cc',
        'socket_wrapper_test.cc',
        'speech_synthesis_basic_test.cc',
        'state_machine_test.cc',
        'storage_close_record_test.cc',
        'storage_delete_record_test.cc',
        'storage_get_record_size_test.cc',
        'storage_open_record_test.cc',
        'storage_read_record_test.cc',
        'storage_write_record_test.cc',
        'string_compare_all_test.cc',
        'string_compare_no_case_n_test.cc',
        'string_compare_no_case_test.cc',
        'string_compare_test.cc',
        'string_compare_wide_test.cc',
        'string_concat_test.cc',
        'string_concat_wide_test.cc',
        'string_copy_test.cc',
        'string_copy_wide_test.cc',
        'string_duplicate_test.cc',
        'string_find_character_test.cc',
        'string_find_last_character_test.cc',
        'string_find_string_test.cc',
        'string_format_test.cc',
        'string_format_wide_test.cc',
        'string_parse_double_test.cc',
        'string_parse_signed_integer_test.cc',
        'string_parse_uint64_test.cc',
        'string_parse_unsigned_integer_test.cc',
        'string_scan_test.cc',
        'system_binary_search_test.cc',
        'system_clear_last_error_test.cc',
        'system_get_error_string_test.cc',
        'system_get_connection_type_test.cc',
        'system_get_extension_test.cc',
        'system_get_last_error_test.cc',
        'system_get_locale_id_test.cc',
        'system_get_number_of_processors_test.cc',
        'system_get_path_test.cc',
        'system_get_property_test.cc',
        'system_get_random_data_test.cc',
        'system_get_random_uint64_test.cc',
        'system_get_stack_test.cc',
        'system_get_total_cpu_memory_test.cc',
        'system_get_total_gpu_memory_test.cc',
        'system_get_used_cpu_memory_test.cc',
        'system_get_used_gpu_memory_test.cc',
        'system_has_capability_test.cc',
        'system_hide_splash_screen_test.cc',
        'system_is_debugger_attached_test.cc',
        'system_network_status_test.cc',
        'system_sort_test.cc',
        'system_sign_with_certification_secret_key_test.cc',
        'system_symbolize_test.cc',
        'thread_create_test.cc',
        'thread_detach_test.cc',
        'thread_get_current_test.cc',
        'thread_get_id_test.cc',
        'thread_get_name_test.cc',
        'thread_helpers.cc',
        'thread_is_equal_test.cc',
        'thread_join_test.cc',
        'thread_local_value_test.cc',
        'thread_sampler_test.cc',
        'thread_set_name_test.cc',
        'thread_sleep_test.cc',
        'thread_test.cc',
        'thread_yield_test.cc',
        'time_get_monotonic_now_test.cc',
        'time_get_now_test.cc',
        'time_narrow_test.cc',
        'time_zone_get_current_test.cc',
        'time_zone_get_name_test.cc',
        'ui_navigation_test.cc',
        'undefined_behavior_test.cc',
        'unsafe_math_test.cc',
        'url_player_create_test.cc',
        'user_get_current_test.cc',
        'user_get_property_test.cc',
        'user_get_signed_in_test.cc',
        'window_create_test.cc',
        'window_destroy_test.cc',
        'window_get_diagonal_size_in_inches_test.cc',
        'window_get_platform_handle_test.cc',
        'window_get_size_test.cc',
        '<@(sabi_sources)',
        # Include private c headers, if present.
        '<!@pymod_do_main(starboard.build.gyp_functions file_glob <(DEPTH)/starboard/private/nplb/ include_all_private.c)',
        # Include private tests, if present.
        '<!@pymod_do_main(starboard.build.gyp_functions file_glob <(DEPTH)/starboard/private/nplb/ *_test.cc)',
      ],
      'dependencies': [
        '<@(cobalt_platform_dependencies)',
        '<(DEPTH)/starboard/common/common.gyp:common',
        '<(DEPTH)/starboard/nplb/compiler_compliance/compiler_compliance.gyp:cpp14_supported',
        '<(DEPTH)/starboard/shared/starboard/media/media.gyp:media_util',
        '<(DEPTH)/starboard/shared/starboard/player/player.gyp:player_copy_test_data',
        '<(DEPTH)/starboard/shared/starboard/player/player.gyp:video_dmp',
        '<(DEPTH)/starboard/starboard.gyp:starboard',
        '<(DEPTH)/testing/gmock.gyp:gmock',
        '<(DEPTH)/testing/gtest.gyp:gtest',
        'copy_nplb_file_tests_data',
      ],
      'conditions': [
        ['sb_evergreen != 1', {
          'sources': [
            # Segfaults or causes unresolved symbols for Cobalt Evergreen.
            'media_set_audio_write_duration_test.cc',
          ],
        }],
        ['sb_disable_cpp17_audit == 0', {
          'dependencies': [
            '<(DEPTH)/starboard/nplb/compiler_compliance/compiler_compliance.gyp:cpp17_supported',
          ],
        }],
        ['gl_type != "none"', {
          'dependencies': [
             # This is needed because SbPlayerTest depends on
             # FakeGraphicsContextProvider which depends on EGL and GLES.
            '<(DEPTH)/starboard/egl_and_gles/egl_and_gles.gyp:egl_and_gles',
          ],
        }],
      ],
      'includes': [ '<(DEPTH)/starboard/nplb/sabi/sabi.gypi' ],
    },
    {
      'target_name': 'copy_nplb_file_tests_data',
      'type': 'none',
      'variables': {
        'content_test_input_files': [
          '<(DEPTH)/starboard/nplb/testdata/file_tests/dir_with_files',
          '<(DEPTH)/starboard/nplb/testdata/file_tests/dir_with_only_subdir',
          '<(DEPTH)/starboard/nplb/testdata/file_tests/file01',
          '<(DEPTH)/starboard/nplb/testdata/file_tests/file_with_long_name_and_contents_for_seek_testing_1234567890',
        ],
        'content_test_output_subdir': 'starboard/nplb/file_tests',
      },
      'includes': [ '<(DEPTH)/starboard/build/copy_test_data.gypi' ],
    },
    {
      'target_name': 'nplb_deploy',
      'type': 'none',
      'dependencies': [
        'nplb',
      ],
      'variables': {
        'executable_name': 'nplb',
      },
      'includes': [ '<(DEPTH)/starboard/build/deploy.gypi' ],
    },
  ],
}
