|  | # Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | import("../mojo_edk.gni") | 
|  | import("//testing/test.gni") | 
|  |  | 
|  | if (is_android) { | 
|  | import("//build/config/android/config.gni") | 
|  | import("//build/config/android/rules.gni") | 
|  | } | 
|  |  | 
|  | # TODO(vtl): Should we get rid of this? | 
|  | config("system_config") { | 
|  | } | 
|  |  | 
|  | component("system") { | 
|  | output_name = "mojo_system_impl" | 
|  |  | 
|  | sources = [ | 
|  | "async_waiter.cc", | 
|  | "async_waiter.h", | 
|  | "awakable.h", | 
|  | "awakable_list.cc", | 
|  | "awakable_list.h", | 
|  | "channel.cc", | 
|  | "channel.h", | 
|  | "channel_endpoint.cc", | 
|  | "channel_endpoint.h", | 
|  | "channel_endpoint_client.h", | 
|  | "channel_endpoint_id.cc", | 
|  | "channel_endpoint_id.h", | 
|  | "channel_id.h", | 
|  | "channel_manager.cc", | 
|  | "channel_manager.h", | 
|  | "configuration.cc", | 
|  | "configuration.h", | 
|  | "connection_identifier.h", | 
|  | "connection_manager.cc", | 
|  | "connection_manager.h", | 
|  | "connection_manager_messages.h", | 
|  | "core.cc", | 
|  | "core.h", | 
|  | "data_pipe.cc", | 
|  | "data_pipe.h", | 
|  | "data_pipe_consumer_dispatcher.cc", | 
|  | "data_pipe_consumer_dispatcher.h", | 
|  | "data_pipe_impl.cc", | 
|  | "data_pipe_impl.h", | 
|  | "data_pipe_producer_dispatcher.cc", | 
|  | "data_pipe_producer_dispatcher.h", | 
|  | "dispatcher.cc", | 
|  | "dispatcher.h", | 
|  | "endpoint_relayer.cc", | 
|  | "endpoint_relayer.h", | 
|  | "handle_signals_state.h", | 
|  | "handle_table.cc", | 
|  | "handle_table.h", | 
|  | "incoming_endpoint.cc", | 
|  | "incoming_endpoint.h", | 
|  | "ipc_support.cc", | 
|  | "ipc_support.h", | 
|  | "local_data_pipe_impl.cc", | 
|  | "local_data_pipe_impl.h", | 
|  | "local_message_pipe_endpoint.cc", | 
|  | "local_message_pipe_endpoint.h", | 
|  | "mapping_table.cc", | 
|  | "mapping_table.h", | 
|  | "master_connection_manager.cc", | 
|  | "master_connection_manager.h", | 
|  | "memory.cc", | 
|  | "memory.h", | 
|  | "message_in_transit.cc", | 
|  | "message_in_transit.h", | 
|  | "message_in_transit_queue.cc", | 
|  | "message_in_transit_queue.h", | 
|  | "message_pipe.cc", | 
|  | "message_pipe.h", | 
|  | "message_pipe_dispatcher.cc", | 
|  | "message_pipe_dispatcher.h", | 
|  | "message_pipe_endpoint.cc", | 
|  | "message_pipe_endpoint.h", | 
|  | "options_validation.h", | 
|  | "platform_handle_dispatcher.cc", | 
|  | "platform_handle_dispatcher.h", | 
|  | "process_identifier.h", | 
|  | "proxy_message_pipe_endpoint.cc", | 
|  | "proxy_message_pipe_endpoint.h", | 
|  | "raw_channel.cc", | 
|  | "raw_channel.h", | 
|  | "raw_channel_posix.cc", | 
|  | "remote_consumer_data_pipe_impl.cc", | 
|  | "remote_consumer_data_pipe_impl.h", | 
|  | "remote_data_pipe_ack.h", | 
|  | "remote_producer_data_pipe_impl.cc", | 
|  | "remote_producer_data_pipe_impl.h", | 
|  | "shared_buffer_dispatcher.cc", | 
|  | "shared_buffer_dispatcher.h", | 
|  | "simple_dispatcher.cc", | 
|  | "simple_dispatcher.h", | 
|  | "slave_connection_manager.cc", | 
|  | "slave_connection_manager.h", | 
|  | "transport_data.cc", | 
|  | "transport_data.h", | 
|  | "unique_identifier.cc", | 
|  | "unique_identifier.h", | 
|  | "waitable_event.cc", | 
|  | "waitable_event.h", | 
|  | "waiter.cc", | 
|  | "waiter.h", | 
|  | ] | 
|  |  | 
|  | all_dependent_configs = [ ":system_config" ] | 
|  |  | 
|  | public_deps = [ | 
|  | "../embedder", | 
|  | "../embedder:delegates", | 
|  | "../embedder:platform", | 
|  | "../util", | 
|  | "../../public/c/system", | 
|  | "../../public/cpp/system", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "//base", | 
|  | "//base/third_party/dynamic_annotations", | 
|  | ] | 
|  |  | 
|  | allow_circular_includes_from = [ "../embedder" ] | 
|  | } | 
|  |  | 
|  | group("tests") { | 
|  | testonly = true | 
|  | deps = [ | 
|  | ":mojo_system_perftests", | 
|  | ":mojo_system_unittests", | 
|  | ] | 
|  | } | 
|  |  | 
|  | mojo_edk_unittests("mojo_system_unittests") { | 
|  | sources = [ | 
|  | # TODO(vtl): This should be in its own mojo_edk_unittests target. | 
|  | "../test/multiprocess_test_helper_unittest.cc", | 
|  | "awakable_list_unittest.cc", | 
|  | "channel_endpoint_id_unittest.cc", | 
|  | "channel_endpoint_unittest.cc", | 
|  | "channel_manager_unittest.cc", | 
|  | "channel_test_base.cc", | 
|  | "channel_test_base.h", | 
|  | "channel_unittest.cc", | 
|  | "connection_manager_unittest.cc", | 
|  | "core_test_base.cc", | 
|  | "core_test_base.h", | 
|  | "core_unittest.cc", | 
|  | "data_pipe_impl_unittest.cc", | 
|  | "data_pipe_unittest.cc", | 
|  | "dispatcher_unittest.cc", | 
|  | "endpoint_relayer_unittest.cc", | 
|  | "ipc_support_unittest.cc", | 
|  | "memory_unittest.cc", | 
|  | "message_in_transit_queue_unittest.cc", | 
|  | "message_in_transit_test_utils.cc", | 
|  | "message_in_transit_test_utils.h", | 
|  | "message_pipe_dispatcher_unittest.cc", | 
|  | "message_pipe_test_utils.cc", | 
|  | "message_pipe_test_utils.h", | 
|  | "message_pipe_unittest.cc", | 
|  | "multiprocess_message_pipe_unittest.cc", | 
|  | "options_validation_unittest.cc", | 
|  | "platform_handle_dispatcher_unittest.cc", | 
|  | "raw_channel_unittest.cc", | 
|  | "remote_data_pipe_impl_unittest.cc", | 
|  | "remote_message_pipe_unittest.cc", | 
|  | "shared_buffer_dispatcher_unittest.cc", | 
|  | "simple_dispatcher_unittest.cc", | 
|  | "test_channel_endpoint_client.cc", | 
|  | "test_channel_endpoint_client.h", | 
|  | "unique_identifier_unittest.cc", | 
|  | "waitable_event_unittest.cc", | 
|  | "waiter_test_utils.cc", | 
|  | "waiter_test_utils.h", | 
|  | "waiter_unittest.cc", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":system", | 
|  | "//base", | 
|  | "//testing/gtest", | 
|  | ] | 
|  |  | 
|  | mojo_edk_deps = [ | 
|  | # TODO(vtl): Add separate mojo_edk_unittests targets for these. | 
|  | "mojo/edk/embedder:unittests", | 
|  | "mojo/edk/system/test:unittests", | 
|  | "mojo/edk/util:unittests", | 
|  |  | 
|  | "mojo/edk/system/test", | 
|  | "mojo/edk/test:test_support", | 
|  | "mojo/edk/util", | 
|  | ] | 
|  | } | 
|  |  | 
|  | mojo_edk_perftests("mojo_system_perftests") { | 
|  | sources = [ | 
|  | "message_pipe_perftest.cc", | 
|  | "message_pipe_test_utils.cc", | 
|  | "message_pipe_test_utils.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":system", | 
|  | "//base", | 
|  | "//testing/gtest", | 
|  | ] | 
|  |  | 
|  | mojo_edk_deps = [ | 
|  | # TODO(vtl): Add separate test targets for this. | 
|  | "mojo/edk/util:perftests", | 
|  |  | 
|  | "mojo/edk/system/test", | 
|  | "mojo/edk/system/test:perf", | 
|  | "mojo/edk/test:test_support", | 
|  | ] | 
|  | } |