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

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",
    "player_create_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_get_local_interface_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",
  ]
  # 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",
  ]
}
