summaryrefslogtreecommitdiff
path: root/absl
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2023-02-13 12:19:15 -0800
committerGravatar Copybara-Service <copybara-worker@google.com>2023-02-13 12:20:35 -0800
commit19a44466c19f15b1e9134b10430a2530688b9a2e (patch)
tree3160b29f0caddef4e5df3009bc9e749e99b03a23 /absl
parent2312dbb66cbcb9ffab2fdbc1672211091d2b5286 (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.bazel1
-rw-r--r--absl/log/CMakeLists.txt1
-rw-r--r--absl/log/stripping_test.cc10
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) {