diff options
author | Tor Brede Vekterli <vekterli@vespa.ai> | 2024-04-09 14:20:01 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@vespa.ai> | 2024-04-09 14:20:01 +0000 |
commit | 0f19429b96e31a3bdff4658deef9f8910c53c1f5 (patch) | |
tree | 5a73521e7cd291d67d08b451e3d0cc921e6bcda6 /storage | |
parent | 65790df4dfb9e5c0ab3e1fd90fa117351bb624ef (diff) |
Add Abseil failure signal handler to test runner to get stack dumps for crashes
Diffstat (limited to 'storage')
-rw-r--r-- | storage/src/tests/persistence/filestorage/CMakeLists.txt | 1 | ||||
-rw-r--r-- | storage/src/tests/persistence/filestorage/gtest_runner.cpp | 11 |
2 files changed, 11 insertions, 1 deletions
diff --git a/storage/src/tests/persistence/filestorage/CMakeLists.txt b/storage/src/tests/persistence/filestorage/CMakeLists.txt index 951a361474e..aa7c9fe995c 100644 --- a/storage/src/tests/persistence/filestorage/CMakeLists.txt +++ b/storage/src/tests/persistence/filestorage/CMakeLists.txt @@ -19,6 +19,7 @@ vespa_add_executable(storage_filestorage_gtest_runner_app TEST storage_testhostreporter storage_testpersistence_common GTest::GTest + absl::failure_signal_handler ) vespa_add_test( NAME storage_filestorage_gtest_runner_app COMMAND storage_filestorage_gtest_runner_app COST 50) diff --git a/storage/src/tests/persistence/filestorage/gtest_runner.cpp b/storage/src/tests/persistence/filestorage/gtest_runner.cpp index 5d1fde4130c..1ed7bc91843 100644 --- a/storage/src/tests/persistence/filestorage/gtest_runner.cpp +++ b/storage/src/tests/persistence/filestorage/gtest_runner.cpp @@ -1,8 +1,17 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include <vespa/vespalib/gtest/gtest.h> +#include <absl/debugging/failure_signal_handler.h> #include <vespa/log/log.h> LOG_SETUP("storage_filestorage_gtest_runner"); -GTEST_MAIN_RUN_ALL_TESTS() +int main(int argc, char* argv[]) { + absl::FailureSignalHandlerOptions opts; + opts.call_previous_handler = true; + opts.use_alternate_stack = false; // Suboptimal, but needed to get proper backtracing (for some reason...) + absl::InstallFailureSignalHandler(opts); + + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} |