blob: 2fe70bbd01d43081a8411710cd4231c4b22b3d6f [file] [log] [blame]
# Copyright (c) 2012 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("//testing/test.gni")
component("ipc") {
sources = [
"attachment_broker.cc",
"attachment_broker.h",
"attachment_broker_messages.h",
"attachment_broker_privileged.cc",
"attachment_broker_privileged.h",
"attachment_broker_privileged_win.cc",
"attachment_broker_privileged_win.h",
"attachment_broker_unprivileged.cc",
"attachment_broker_unprivileged.h",
"attachment_broker_unprivileged_win.cc",
"attachment_broker_unprivileged_win.h",
"brokerable_attachment.cc",
"brokerable_attachment.h",
"handle_attachment_win.cc",
"handle_attachment_win.h",
"handle_win.cc",
"handle_win.h",
"ipc_channel.cc",
"ipc_channel.h",
"ipc_channel_common.cc",
"ipc_channel_factory.cc",
"ipc_channel_factory.h",
"ipc_channel_handle.h",
"ipc_channel_nacl.cc",
"ipc_channel_nacl.h",
"ipc_channel_posix.cc",
"ipc_channel_posix.h",
"ipc_channel_proxy.cc",
"ipc_channel_proxy.h",
"ipc_channel_reader.cc",
"ipc_channel_reader.h",
"ipc_channel_win.cc",
"ipc_channel_win.h",
"ipc_descriptors.h",
"ipc_endpoint.cc",
"ipc_endpoint.h",
"ipc_export.h",
"ipc_handle_win.cc",
"ipc_handle_win.h",
"ipc_listener.h",
"ipc_logging.cc",
"ipc_logging.h",
"ipc_message.cc",
"ipc_message.h",
"ipc_message_attachment.cc",
"ipc_message_attachment.h",
"ipc_message_attachment_set.cc",
"ipc_message_attachment_set.h",
"ipc_message_generator.cc",
"ipc_message_generator.h",
"ipc_message_macros.h",
"ipc_message_start.h",
"ipc_message_utils.cc",
"ipc_message_utils.h",
"ipc_param_traits.h",
"ipc_platform_file.cc",
"ipc_platform_file.h",
"ipc_platform_file_attachment_posix.cc",
"ipc_platform_file_attachment_posix.h",
"ipc_sender.h",
"ipc_switches.cc",
"ipc_switches.h",
"ipc_sync_channel.cc",
"ipc_sync_channel.h",
"ipc_sync_message.cc",
"ipc_sync_message.h",
"ipc_sync_message_filter.cc",
"ipc_sync_message_filter.h",
"message_filter.cc",
"message_filter.h",
"message_filter_router.cc",
"message_filter_router.h",
"param_traits_log_macros.h",
"param_traits_macros.h",
"param_traits_read_macros.h",
"param_traits_write_macros.h",
"struct_constructor_macros.h",
"struct_destructor_macros.h",
"unix_domain_socket_util.cc",
"unix_domain_socket_util.h",
]
if (is_nacl) {
sources -= [
"ipc_channel.cc",
"ipc_channel_posix.cc",
"unix_domain_socket_util.cc",
]
} else {
sources -= [
"ipc_channel_nacl.cc",
"ipc_channel_nacl.h",
]
}
if (is_win || is_ios) {
sources -= [ "unix_domain_socket_util.cc" ]
}
defines = [ "IPC_IMPLEMENTATION" ]
deps = [
"//base",
# TODO(viettrungluu): Needed for base/lazy_instance.h, which is suspect.
"//base/third_party/dynamic_annotations",
"//crypto:crypto",
]
}
# TODO(GYP): crbug.com/360936. Get this to build and run on Android.
if (!is_android) {
group("ipc_tests_run") {
testonly = true
deps = [
":ipc_tests",
]
}
test("ipc_tests") {
sources = [
"attachment_broker_privileged_win_unittest.cc",
"attachment_broker_unprivileged_win_unittest.cc",
"ipc_channel_posix_unittest.cc",
"ipc_channel_reader_unittest.cc",
"ipc_channel_unittest.cc",
"ipc_fuzzing_tests.cc",
"ipc_message_attachment_set_posix_unittest.cc",
"ipc_message_unittest.cc",
"ipc_message_utils_unittest.cc",
"ipc_send_fds_test.cc",
"ipc_sync_channel_unittest.cc",
"ipc_sync_message_unittest.cc",
"ipc_sync_message_unittest.h",
"sync_socket_unittest.cc",
"unix_domain_socket_util_unittest.cc",
]
if (is_win || is_ios) {
sources -= [ "unix_domain_socket_util_unittest.cc" ]
}
# TODO(brettw) hook up Android testing.
#if (is_android && gtest_target_type == "shared_library") {
# deps += "/testing/android/native_test.gyp:native_testNative_code"
#}
# TODO(brettw) hook up tcmalloc to this target.
#if (is_posix && !is_mac && !is_android) {
# if (use_allocator!="none") {
# deps += "/base/allocator"
# }
#}
deps = [
":ipc",
":test_support",
"//base",
"//base:i18n",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//testing/gtest",
]
}
test("ipc_perftests") {
sources = [
"ipc_perftests.cc",
]
# TODO(brettw) hook up Android testing.
#if (is_android && gtest_target_type == "shared_library") {
# deps += "/testing/android/native_test.gyp:native_testNative_code"
#}
# TODO(brettw) hook up tcmalloc to this target.
#if (is_posix && !is_mac && !is_android) {
# if (use_allocator!="none") {
# deps += "//base/allocator"
# }
#}
deps = [
":ipc",
":test_support",
"//base",
"//base:i18n",
"//base/test:test_support",
"//base/test:test_support_perf",
"//testing/gtest",
]
}
}
static_library("test_support") {
testonly = true
sources = [
"ipc_multiprocess_test.cc",
"ipc_multiprocess_test.h",
"ipc_perftest_support.cc",
"ipc_perftest_support.h",
"ipc_security_test_util.cc",
"ipc_security_test_util.h",
"ipc_test_base.cc",
"ipc_test_base.h",
"ipc_test_channel_listener.cc",
"ipc_test_channel_listener.h",
"ipc_test_sink.cc",
"ipc_test_sink.h",
]
deps = [
":ipc",
"//base",
"//base/test:test_support",
"//testing/gtest",
]
}