# Copyright 2017 The Crashpad Authors # # 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("build/crashpad_buildconfig.gni") import("build/test.gni") import("util/net/tls.gni") config("crashpad_config") { include_dirs = [ ".", root_gen_dir, ] } if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) { test("crashpad_tests") { deps = [ "client:client_test", "minidump:minidump_test", "snapshot:snapshot_test", "test:googlemock_main", "test:test_test", "util:util_test", ] if (!crashpad_is_ios && !crashpad_is_fuchsia) { deps += [ "handler:handler_test" ] } if (crashpad_is_in_fuchsia) { # TODO(fuchsia:46559): Fix the leaks and remove this. deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ] # TODO(fxbug.dev/42059784): Remove this once the underlying issue is # addressed. exclude_toolchain_tags = [ "hwasan" ] } if (crashpad_is_android) { use_raw_android_executable = true copy("crashpad_test_data") { testonly = true sources = [ "test/test_paths_test_data_root.txt", "util/net/testdata/ascii_http_body.txt", "util/net/testdata/binary_http_body.dat", ] outputs = [ "$root_out_dir/crashpad_test_data/{{source}}" ] } deps += [ ":crashpad_test_data" ] extra_dist_files = [ "$root_out_dir/crashpad_handler", "$root_out_dir/crashpad_test_test_multiprocess_exec_test_child", "$root_out_dir/crashpad_test_data", ] } } if (crashpad_is_in_fuchsia) { import("//build/components.gni") fuchsia_test_component("crashpad-test-component") { manifest = "test/fuchsia_crashpad_tests.cml" deps = [ ":crashpad-test-resources", ":crashpad_tests", "snapshot:crashpad_snapshot_test_both_dt_hash_styles", "snapshot:crashpad_snapshot_test_module", "snapshot:crashpad_snapshot_test_module_large", "snapshot:crashpad_snapshot_test_module_small", "test:crashpad_test_test_multiprocess_exec_test_child", "util:http_transport_test_server", ] } fuchsia_test_package("crashpad-test") { test_components = [ ":crashpad-test-component" ] deps = [ "//src/connectivity/network/dns:component", "//src/connectivity/network/netstack:component", ] test_specs = { log_settings = { max_severity = "FATAL" } } } _resource_files = [ "test/test_paths_test_data_root.txt", "util/net/testdata/ascii_http_body.txt", "util/net/testdata/binary_http_body.dat", ] if (crashpad_use_boringssl_for_http_transport_socket) { _resource_files += [ "util/net/testdata/crashpad_util_test_cert.pem", "util/net/testdata/crashpad_util_test_key.pem", ] } _resources = [] foreach(resource_file, _resource_files) { _resource_file_target = string_replace(resource_file, "/", "_") resource("${_resource_file_target}") { sources = [ "${resource_file}" ] outputs = [ "data/${resource_file}" ] } _resources += [ ":${_resource_file_target}" ] } group("crashpad-test-resources") { deps = _resources } group("tests") { testonly = true deps = [ ":crashpad-test" ] } } } else if (crashpad_is_standalone || crashpad_is_external) { test("crashpad_client_test") { deps = [ "client:client_test", "test:googlemock_main", ] } test("crashpad_handler_test") { deps = [ "handler:handler_test", "test:googletest_main", ] if (crashpad_is_ios || crashpad_is_fuchsia) { deps -= [ "handler:handler_test" ] } } test("crashpad_minidump_test") { deps = [ "minidump:minidump_test", "test:googletest_main", ] } test("crashpad_snapshot_test") { deps = [ "snapshot:snapshot_test", "test:googlemock_main", ] } test("crashpad_test_test") { deps = [ "test:googlemock_main", "test:test_test", ] } test("crashpad_util_test") { deps = [ "test:googlemock_main", "util:util_test", ] } } if (crashpad_is_ios) { group("ios_xcuitests") { testonly = true deps = [ "test/ios:all_tests" ] } }