# Copyright 2021 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.

target(gtest_target_type, "nplb") {
  testonly = true

  sources = [
    "//starboard/common/test_main.cc",
    "//starboard/nplb/sabi/alignment_test.cc",
    "//starboard/nplb/sabi/endianness_test.cc",
    "//starboard/nplb/sabi/signedness_and_size_of_enum_test.cc",
    "//starboard/nplb/sabi/signedness_of_char_test.cc",
    "//starboard/nplb/sabi/size_test.cc",
    "//starboard/nplb/sabi/struct_alignment_test.cc",
    "//starboard/testing/fake_graphics_context_provider.cc",
    "//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",
    "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_gcm_test.cc",
    "cryptography_transform_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_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",
    "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_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",
    "murmurhash2_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_connection_type_test.cc",
    "system_get_error_string_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_sign_with_certification_secret_key_test.cc",
    "system_sort_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",
  ]

  if (has_drm_support) {
    sources += [
      "drm_create_system_test.cc",
      "media_can_play_mime_and_key_system_test.cc",
    ]
  }

  deps = [ "//starboard/nplb/testdata/file_tests:nplb_file_tests_data" ]
  deps += cobalt_platform_dependencies

  if (is_internal_build) {
    deps += [ "//starboard/private/nplb:nplb_private" ]
  }

  public_deps = [
    "//starboard",
    "//starboard/common",
    "//starboard/shared/starboard/media:media_util",
    "//starboard/shared/starboard/player:player_download_test_data",
    "//starboard/shared/starboard/player:video_dmp",
    "//testing/gmock",
  ]

  if (gl_type != "none") {
    public_deps += [ "//starboard/egl_and_gles" ]
  }

  configs += [
    "//build/config/compiler:exceptions",
    "//starboard/build/config:starboard_implementation",
  ]
  configs -= [ "//build/config/compiler:no_exceptions" ]
}
