Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <string>
00016
00017 #include "gtest/gtest.h"
00018 #include "absl/base/internal/raw_logging.h"
00019 #include "absl/debugging/leak_check.h"
00020
00021 namespace {
00022
00023 TEST(LeakCheckTest, DetectLeakSanitizer) {
00024 #ifdef ABSL_EXPECT_LEAK_SANITIZER
00025 EXPECT_TRUE(absl::HaveLeakSanitizer());
00026 #else
00027 EXPECT_FALSE(absl::HaveLeakSanitizer());
00028 #endif
00029 }
00030
00031 TEST(LeakCheckTest, IgnoreLeakSuppressesLeakedMemoryErrors) {
00032 auto foo = absl::IgnoreLeak(new std::string("some ignored leaked string"));
00033 ABSL_RAW_LOG(INFO, "Ignoring leaked std::string %s", foo->c_str());
00034 }
00035
00036 TEST(LeakCheckTest, LeakCheckDisablerIgnoresLeak) {
00037 absl::LeakCheckDisabler disabler;
00038 auto foo = new std::string("some std::string leaked while checks are disabled");
00039 ABSL_RAW_LOG(INFO, "Ignoring leaked std::string %s", foo->c_str());
00040 }
00041
00042 }