diff options
author | Alison Felizzi <alison.felizzi@mongodb.com> | 2022-01-17 02:13:10 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-01-17 02:45:00 +0000 |
commit | 5f19650b3b2561a9bc1e39ad95dc7fc309c1990b (patch) | |
tree | a3cb40628ad5ad9301b1ad8bf90cc2b8812b860d /src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp | |
parent | b2915693899db7af9e22346504a10157857f55c8 (diff) | |
download | mongo-5f19650b3b2561a9bc1e39ad95dc7fc309c1990b.tar.gz |
SERVER-62360 Handle re-configuring the WT LOGV2 component hierarchy
Co-authored-by: Etienne Petrel <etienne.petrel@mongodb.com>
Diffstat (limited to 'src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp')
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp index 4dea0576ccb..fc49110c3b5 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp @@ -535,6 +535,58 @@ TEST_F(WiredTigerKVEngineTest, WiredTigerDowngrade) { ASSERT_EQ(WiredTigerFileVersion::kLatestWTRelease, version.getDowngradeString()); } +TEST_F(WiredTigerKVEngineTest, TestReconfigureLog) { + // Perform each test in their own limited scope in order to establish different + // severity levels. + { + // Set the WiredTiger Checkpoint LOGV2 component severity to the Log level. + auto severityGuard = unittest::MinimumLoggedSeverityGuard{ + logv2::LogComponent::kWiredTigerCheckpoint, logv2::LogSeverity::Log()}; + ASSERT_EQ(logv2::LogSeverity::Log(), + unittest::getMinimumLogSeverity(logv2::LogComponent::kWiredTigerCheckpoint)); + ASSERT_OK(_engine->reconfigureLogging()); + // Perform a checkpoint. The goal here is create some activity in WiredTiger in order + // to generate verbose messages (we don't really care about the checkpoint itself). + startCapturingLogMessages(); + _engine->checkpoint(); + stopCapturingLogMessages(); + // In this initial case, we don't expect to capture any debug checkpoint messages. The + // base severity for the checkpoint component should be at Log(). + bool foundWTCheckpointMessage = false; + for (auto&& bson : getCapturedBSONFormatLogMessages()) { + if (bson["c"].String() == "WTCHKPT" && + bson["attr"]["message"]["verbose_level"].String() == "DEBUG" && + bson["attr"]["message"]["category"].String() == "WT_VERB_CHECKPOINT") { + foundWTCheckpointMessage = true; + } + } + ASSERT_FALSE(foundWTCheckpointMessage); + } + { + // Set the WiredTiger Checkpoint LOGV2 component severity to the Debug(1) level. + auto severityGuard = unittest::MinimumLoggedSeverityGuard{ + logv2::LogComponent::kWiredTigerCheckpoint, logv2::LogSeverity::Debug(1)}; + ASSERT_OK(_engine->reconfigureLogging()); + ASSERT_EQ(logv2::LogSeverity::Debug(1), + unittest::getMinimumLogSeverity(logv2::LogComponent::kWiredTigerCheckpoint)); + + // Perform another checkpoint. + startCapturingLogMessages(); + _engine->checkpoint(); + stopCapturingLogMessages(); + + // This time we expect to detect WiredTiger checkpoint Debug() messages. + bool foundWTCheckpointMessage = false; + for (auto&& bson : getCapturedBSONFormatLogMessages()) { + if (bson["c"].String() == "WTCHKPT" && + bson["attr"]["message"]["verbose_level"].String() == "DEBUG" && + bson["attr"]["message"]["category"].String() == "WT_VERB_CHECKPOINT") { + foundWTCheckpointMessage = true; + } + } + ASSERT_TRUE(foundWTCheckpointMessage); + } +} std::unique_ptr<KVHarnessHelper> makeHelper(ServiceContext* svcCtx) { return std::make_unique<WiredTigerKVHarnessHelper>(svcCtx); |