diff --git a/common/BUILD b/common/BUILD index 6d255447004d..4f93477ed9c0 100644 --- a/common/BUILD +++ b/common/BUILD @@ -18,7 +18,7 @@ cc_test( srcs = ["check_test.cpp"], deps = [ ":check", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", ], ) @@ -37,7 +37,23 @@ cc_test( srcs = ["error_test.cpp"], deps = [ ":error", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", + ], +) + +# This does extra initialization on top of googletest's gtest_main in order to +# provide stack traces on unexpected exits, because we normally rely on LLVM +# code for that. +# +# This replaces "@com_google_googletest//:gtest_main"; +# "@com_google_googletest//:gtest" should still be used directly. +cc_library( + name = "gtest_main", + testonly = 1, + srcs = ["gtest_main.cpp"], + deps = [ + "@com_google_googletest//:gtest", + "@llvm-project//llvm:Support", ], ) @@ -51,7 +67,7 @@ cc_test( srcs = ["indirect_value_test.cpp"], deps = [ ":indirect_value", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", ], ) @@ -85,7 +101,7 @@ cc_test( srcs = ["string_helpers_test.cpp"], deps = [ ":string_helpers", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//llvm:Support", ], ) diff --git a/common/gtest_main.cpp b/common/gtest_main.cpp new file mode 100644 index 000000000000..ff44c453b2d8 --- /dev/null +++ b/common/gtest_main.cpp @@ -0,0 +1,17 @@ +// Part of the Carbon Language project, under the Apache License v2.0 with LLVM +// Exceptions. See /LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +#include + +#include "llvm/Support/InitLLVM.h" + +auto main(int argc, char** argv) -> int { + testing::InitGoogleTest(&argc, argv); + llvm::setBugReportMsg( + "Please report issues to " + "https://github.com/carbon-language/carbon-lang/issues and include the " + "crash backtrace.\n"); + llvm::InitLLVM init_llvm(argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/executable_semantics/ast/BUILD b/executable_semantics/ast/BUILD index 6a62fa02a82a..05395d53dcc7 100644 --- a/executable_semantics/ast/BUILD +++ b/executable_semantics/ast/BUILD @@ -64,8 +64,8 @@ cc_test( ":expression", ":pattern", ":statement", + "//common:gtest_main", "//executable_semantics/common:arena", - "@com_google_googletest//:gtest_main", ], ) @@ -144,8 +144,8 @@ cc_test( deps = [ ":expression", ":paren_contents", + "//common:gtest_main", "//executable_semantics/common:arena", - "@com_google_googletest//:gtest_main", "@llvm-project//llvm:Support", ], ) @@ -188,8 +188,8 @@ cc_test( ":expression", ":paren_contents", ":pattern", + "//common:gtest_main", "//executable_semantics/common:arena", - "@com_google_googletest//:gtest_main", "@llvm-project//llvm:Support", ], ) diff --git a/executable_semantics/common/BUILD b/executable_semantics/common/BUILD index c3f7ea6ffe71..0fac532f83ad 100644 --- a/executable_semantics/common/BUILD +++ b/executable_semantics/common/BUILD @@ -27,7 +27,7 @@ cc_test( deps = [ ":error_builders", ":source_location", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", ], ) diff --git a/executable_semantics/syntax/BUILD b/executable_semantics/syntax/BUILD index 41b31891ef10..f8b65ecae6cb 100644 --- a/executable_semantics/syntax/BUILD +++ b/executable_semantics/syntax/BUILD @@ -20,8 +20,8 @@ cc_test( srcs = ["parse_test.cpp"], deps = [ ":syntax", + "//common:gtest_main", "//executable_semantics/common:arena", - "@com_google_googletest//:gtest_main", ], ) @@ -150,7 +150,7 @@ cc_test( deps = [ ":parse_test_matchers", ":syntax", + "//common:gtest_main", "//executable_semantics/ast:ast_test_matchers", - "@com_google_googletest//:gtest_main", ], ) diff --git a/migrate_cpp/cpp_refactoring/BUILD b/migrate_cpp/cpp_refactoring/BUILD index 6963856b0cfe..04607d38a0f0 100644 --- a/migrate_cpp/cpp_refactoring/BUILD +++ b/migrate_cpp/cpp_refactoring/BUILD @@ -62,7 +62,7 @@ cc_test( deps = [ ":fn_inserter", ":matcher_test_base", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//clang:tooling", ], ) @@ -83,7 +83,7 @@ cc_test( deps = [ ":for_range", ":matcher_test_base", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//clang:tooling", ], ) @@ -105,7 +105,7 @@ cc_test( deps = [ ":matcher_test_base", ":var_decl", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//clang:tooling", ], ) diff --git a/toolchain/diagnostics/BUILD b/toolchain/diagnostics/BUILD index 0fd28b1fd62f..9c5dc515667f 100644 --- a/toolchain/diagnostics/BUILD +++ b/toolchain/diagnostics/BUILD @@ -20,7 +20,7 @@ cc_test( deps = [ ":diagnostic_emitter", ":mocks", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//llvm:Support", ], ) @@ -44,7 +44,7 @@ cc_test( srcs = ["diagnostic_kind_test.cpp"], deps = [ ":diagnostic_kind", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//llvm:Support", ], ) @@ -76,7 +76,7 @@ cc_test( ":diagnostic_emitter", ":mocks", ":sorting_diagnostic_consumer", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//llvm:Support", ], ) diff --git a/toolchain/driver/BUILD b/toolchain/driver/BUILD index 02ebeba11634..997d38d302c0 100644 --- a/toolchain/driver/BUILD +++ b/toolchain/driver/BUILD @@ -27,10 +27,10 @@ cc_test( srcs = ["driver_test.cpp"], deps = [ ":driver", + "//common:gtest_main", "//toolchain/common:yaml_test_helpers", "//toolchain/diagnostics:diagnostic_emitter", "//toolchain/lexer:tokenized_buffer_test_helpers", - "@com_google_googletest//:gtest_main", "@llvm-project//llvm:Support", ], ) diff --git a/toolchain/lexer/BUILD b/toolchain/lexer/BUILD index 85f910a21547..7dfb3cbdbb6e 100644 --- a/toolchain/lexer/BUILD +++ b/toolchain/lexer/BUILD @@ -24,7 +24,7 @@ cc_test( srcs = ["token_kind_test.cpp"], deps = [ ":token_kind", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//llvm:Support", ], ) @@ -91,9 +91,9 @@ cc_test( ":numeric_literal", ":test_helpers", "//common:check", + "//common:gtest_main", "//common:ostream", "//toolchain/diagnostics:diagnostic_emitter", - "@com_google_googletest//:gtest_main", "@llvm-project//llvm:Support", ], ) @@ -142,9 +142,9 @@ cc_test( ":string_literal", ":test_helpers", "//common:check", + "//common:gtest_main", "//common:ostream", "//toolchain/diagnostics:diagnostic_emitter", - "@com_google_googletest//:gtest_main", "@llvm-project//llvm:Support", ], ) @@ -201,10 +201,10 @@ cc_test( deps = [ ":tokenized_buffer", ":tokenized_buffer_test_helpers", + "//common:gtest_main", "//toolchain/common:yaml_test_helpers", "//toolchain/diagnostics:diagnostic_emitter", "//toolchain/diagnostics:mocks", - "@com_google_googletest//:gtest_main", "@llvm-project//llvm:Support", ], ) diff --git a/toolchain/parser/BUILD b/toolchain/parser/BUILD index 5a5191f74f2d..a61e47bb80a7 100644 --- a/toolchain/parser/BUILD +++ b/toolchain/parser/BUILD @@ -20,7 +20,7 @@ cc_test( srcs = ["parse_node_kind_test.cpp"], deps = [ ":parse_node_kind", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//llvm:Support", ], ) @@ -67,12 +67,12 @@ cc_test( ":parse_node_kind", ":parse_test_helpers", ":parse_tree", + "//common:gtest_main", "//common:ostream", "//toolchain/common:yaml_test_helpers", "//toolchain/diagnostics:diagnostic_emitter", "//toolchain/diagnostics:mocks", "//toolchain/lexer:tokenized_buffer", - "@com_google_googletest//:gtest_main", "@llvm-project//llvm:Support", ], ) @@ -109,7 +109,7 @@ cc_test( srcs = ["precedence_test.cpp"], deps = [ ":precedence", + "//common:gtest_main", "//toolchain/lexer:token_kind", - "@com_google_googletest//:gtest_main", ], ) diff --git a/toolchain/semantics/BUILD b/toolchain/semantics/BUILD index 4ebd609f4a2b..b83a08428e84 100644 --- a/toolchain/semantics/BUILD +++ b/toolchain/semantics/BUILD @@ -43,11 +43,11 @@ cc_test( srcs = ["semantics_ir_factory_test.cpp"], deps = [ ":semantics_ir_factory", + "//common:gtest_main", "//toolchain/diagnostics:mocks", "//toolchain/lexer:tokenized_buffer", "//toolchain/parser:parse_tree", "//toolchain/source:source_buffer", - "@com_google_googletest//:gtest_main", "@llvm-project//llvm:Support", ], ) diff --git a/toolchain/source/BUILD b/toolchain/source/BUILD index 968e1e9465de..93f7a65285b8 100644 --- a/toolchain/source/BUILD +++ b/toolchain/source/BUILD @@ -20,7 +20,7 @@ cc_test( srcs = ["source_buffer_test.cpp"], deps = [ ":source_buffer", - "@com_google_googletest//:gtest_main", + "//common:gtest_main", "@llvm-project//llvm:Support", ], )