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

# TODO: change to //starboard eventually.
import("//cobalt/build/config/base.gni")
import("//starboard/build/deploy.gni")

group("all") {
  testonly = true
  deps = [
    ":nplb",
    ":deploy",
  ]
}

test("nplb") {
  testonly = true
  sources = [
    "//starboard/common/test_main.cc",
    "accessibility_get_setting_test.cc",
    "align_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_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",
    "cryptography_create_transformer_test.cc",
    "cryptography_helpers.cc",
    "cryptography_helpers.h",
    "cryptography_transform_gcm_test.cc",
    "cryptography_transform_test.cc",
    "decode_target_create_test.cc",
    "decode_target_provider_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",
    "file_can_open_test.cc",
    "file_close_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_seek_test.cc",
    "file_truncate_test.cc",
    "file_write_test.cc",
    "flat_map_test.cc",
    "include_all.c",
    "include_all_too.c",
    "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",
    "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",
    "random_helpers.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_recognizer_cancel_test.cc",
    "speech_recognizer_create_test.cc",
    "speech_recognizer_destroy_test.cc",
    "speech_recognizer_helper.h",
    "speech_recognizer_start_test.cc",
    "speech_recognizer_stop_test.cc",
    "speech_synthesis_basic_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",
    "state_machine_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_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_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_set_name_test.cc",
    "thread_sleep_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_dst_name_test.cc",
    "time_zone_get_name_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_platform_handle_test.cc",
    "window_get_size_test.cc",
  ]

  # TODO: find a way to remove this dependence on Cobalt.
  if (sb_media_platform == "starboard") {
    sources += [
      "//starboard/testing/fake_graphics_context_provider.cc",
      "//starboard/testing/fake_graphics_context_provider.h",
      "player_create_test.cc",
      "player_create_with_url_test.cc",
      "player_output_mode_supported_test.cc",
    ]
  }

  # Include private C headers, if present.
  private_sources = exec_script("//starboard/tools/find_private_files.py",
                                [
                                  rebase_path("//", root_build_dir),
                                  "nplb/include_all_private.c",
                                ],
                                "list lines",
                                [ "." ])
  # Include private tests, if present.
  private_sources += exec_script("//starboard/tools/find_private_files.py",
                                 [
                                   rebase_path("//", root_build_dir),
                                   "nplb/*_test.cc",
                                 ],
                                 "list lines",
                                 [ "." ])
  sources += rebase_path(private_sources, ".", root_build_dir)

  deps = [
    "//starboard",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

deploy("deploy") {
  testonly = true
  executable_name = "nplb"

  deps = [
    ":nplb",
  ]
}
