diff options
author | 2023-02-13 12:19:15 -0800 | |
---|---|---|
committer | 2023-02-13 12:20:35 -0800 | |
commit | 19a44466c19f15b1e9134b10430a2530688b9a2e (patch) | |
tree | 3160b29f0caddef4e5df3009bc9e749e99b03a23 /absl | |
parent | 2312dbb66cbcb9ffab2fdbc1672211091d2b5286 (diff) |
Fix absl/log:stripping_test when ABSL_MIN_LOG_LEVEL is defined
The test was getting tripped by EXPECT_DEATH_IF_SUPPORTED keeping a literal
copy of the test statement.
PiperOrigin-RevId: 509299343
Change-Id: I63da29d844cc630d750535fd4bb13a2895d32541
Diffstat (limited to 'absl')
-rw-r--r-- | absl/log/BUILD.bazel | 1 | ||||
-rw-r--r-- | absl/log/CMakeLists.txt | 1 | ||||
-rw-r--r-- | absl/log/stripping_test.cc | 10 |
3 files changed, 11 insertions, 1 deletions
diff --git a/absl/log/BUILD.bazel b/absl/log/BUILD.bazel index e9e411ff..378e1f3b 100644 --- a/absl/log/BUILD.bazel +++ b/absl/log/BUILD.bazel @@ -546,6 +546,7 @@ cc_test( deps = [ ":check", ":log", + "//absl/base:log_severity", "//absl/base:strerror", "//absl/flags:program_name", "//absl/log/internal:test_helpers", diff --git a/absl/log/CMakeLists.txt b/absl/log/CMakeLists.txt index fb1b59f5..78adbf1d 100644 --- a/absl/log/CMakeLists.txt +++ b/absl/log/CMakeLists.txt @@ -1014,6 +1014,7 @@ absl_cc_test( absl::flags_program_name absl::log absl::log_internal_test_helpers + absl::log_severity absl::strerror absl::strings absl::str_format diff --git a/absl/log/stripping_test.cc b/absl/log/stripping_test.cc index d6a6606e..8b711ec7 100644 --- a/absl/log/stripping_test.cc +++ b/absl/log/stripping_test.cc @@ -49,6 +49,7 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" #include "absl/base/internal/strerror.h" +#include "absl/base/log_severity.h" #include "absl/flags/internal/program_name.h" #include "absl/log/check.h" #include "absl/log/internal/test_helpers.h" @@ -57,6 +58,10 @@ #include "absl/strings/str_format.h" #include "absl/strings/string_view.h" +// Set a flag that controls whether we actually execute fatal statements, but +// prevent the compiler from optimizing it out. +static volatile bool kReallyDie = false; + namespace { using ::testing::_; using ::testing::Eq; @@ -304,7 +309,10 @@ TEST_F(StrippingTest, Fatal) { // as would happen if we used a literal. We might (or might not) leave it // lying around later; that's what the tests are for! const std::string needle = absl::Base64Escape("StrippingTest.Fatal"); - EXPECT_DEATH_IF_SUPPORTED(LOG(FATAL) << "U3RyaXBwaW5nVGVzdC5GYXRhbA==", ""); + // We don't care if the LOG statement is actually executed, we're just + // checking that it's stripped. + if (kReallyDie) LOG(FATAL) << "U3RyaXBwaW5nVGVzdC5GYXRhbA=="; + std::unique_ptr<FILE, std::function<void(FILE*)>> exe = OpenTestExecutable(); ASSERT_THAT(exe, NotNull()); if (absl::LogSeverity::kFatal >= kAbslMinLogLevel) { |