diff options
author | Rahul Sundararaman <rahul.sundararaman@mongodb.com> | 2019-12-02 21:16:39 +0000 |
---|---|---|
committer | evergreen <evergreen@mongodb.com> | 2019-12-02 21:16:39 +0000 |
commit | cb125fa6284810a767a6e2ec50f940eb1eca7fad (patch) | |
tree | 94c957fec9159052b17136461d4b816e75c6bbf4 /src/mongo/util/latch_analyzer_test.cpp | |
parent | 159d19b1d3b0164d0096ce225f987da4610cc5db (diff) | |
download | mongo-cb125fa6284810a767a6e2ec50f940eb1eca7fad.tar.gz |
SERVER-44746 Fix LatchAnalyzerTest
Diffstat (limited to 'src/mongo/util/latch_analyzer_test.cpp')
-rw-r--r-- | src/mongo/util/latch_analyzer_test.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/mongo/util/latch_analyzer_test.cpp b/src/mongo/util/latch_analyzer_test.cpp index adfa5688f8a..b8b519b6c90 100644 --- a/src/mongo/util/latch_analyzer_test.cpp +++ b/src/mongo/util/latch_analyzer_test.cpp @@ -33,6 +33,7 @@ #include "mongo/unittest/death_test.h" #include "mongo/unittest/unittest.h" #include "mongo/util/hierarchical_acquisition.h" +#include "mongo/util/latch_analyzer.h" namespace mongo { namespace { @@ -45,10 +46,11 @@ DEATH_TEST_F(LatchAnalyzerTest, AddInvalidWasAbsent, "Fatal assertion 31360") { Mutex lowerLevel = MONGO_MAKE_LATCH( Level(1), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "AddInvalidWasAbsent::lowerLevel"); - lowerLevel.lock(); Mutex higherLevel = MONGO_MAKE_LATCH(Level(2), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "AddInvalidWasAbsent::higherLevel"); + + lowerLevel.lock(); higherLevel.lock(); } @@ -57,6 +59,7 @@ DEATH_TEST_F(LatchAnalyzerTest, AddInvalidWasPresent, "Fatal assertion 31360") { Level(1), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "AddInvalidWasPresent::m1"); Mutex m2 = MONGO_MAKE_LATCH( Level(1), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "AddInvalidWasPresent::m2"); + m1.lock(); m2.lock(); } @@ -64,7 +67,7 @@ DEATH_TEST_F(LatchAnalyzerTest, AddInvalidWasPresent, "Fatal assertion 31360") { DEATH_TEST_F(LatchAnalyzerTest, RemoveInvalidWasAbsent, "Fatal assertion 31361") { Mutex m = MONGO_MAKE_LATCH( Level(1), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "RemoveInvalidWasAbsent::m"); - m.unlock(); + m.unlock(); } @@ -72,10 +75,11 @@ DEATH_TEST_F(LatchAnalyzerTest, RemoveInvalidWasPresent, "Fatal assertion 31361" Mutex higherLevel = MONGO_MAKE_LATCH(Level(2), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "RemoveInvalidWasPresent::higherLevel"); - higherLevel.lock(); Mutex lowerLevel = MONGO_MAKE_LATCH(Level(1), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "RemoveInvalidWasPresent::lowerLevel"); + + higherLevel.lock(); lowerLevel.lock(); higherLevel.unlock(); } @@ -83,10 +87,17 @@ DEATH_TEST_F(LatchAnalyzerTest, RemoveInvalidWasPresent, "Fatal assertion 31361" TEST_F(LatchAnalyzerTest, AddValidWasAbsent) { Mutex higherLevel = MONGO_MAKE_LATCH( Level(2), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "AddValidWasAbsent::higherLevel"); - higherLevel.lock(); Mutex lowerLevel = MONGO_MAKE_LATCH( Level(1), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "AddValidWasAbsent::lowerLevel"); + + higherLevel.lock(); lowerLevel.lock(); + + { + LatchAnalyzerDisabledBlock block; + higherLevel.unlock(); + lowerLevel.unlock(); + } } TEST_F(LatchAnalyzerTest, RemoveValidWasPresent) { @@ -94,11 +105,15 @@ TEST_F(LatchAnalyzerTest, RemoveValidWasPresent) { Mutex higherLevel = MONGO_MAKE_LATCH(Level(2), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "RemoveValidWasPresent::higherLevel"); - higherLevel.lock(); Mutex lowerLevel = MONGO_MAKE_LATCH(Level(1), (SourceLocationHolder)MONGO_SOURCE_LOCATION(), "RemoveValidWasPresent::lowerLevel"); - lowerLevel.lock(); + + { + LatchAnalyzerDisabledBlock block; + higherLevel.lock(); + lowerLevel.lock(); + } lowerLevel.unlock(); higherLevel.unlock(); |