summaryrefslogtreecommitdiff
path: root/src/mongo/util/latch_analyzer_test.cpp
diff options
context:
space:
mode:
authorRahul Sundararaman <rahul.sundararaman@mongodb.com>2019-12-02 21:16:39 +0000
committerevergreen <evergreen@mongodb.com>2019-12-02 21:16:39 +0000
commitcb125fa6284810a767a6e2ec50f940eb1eca7fad (patch)
tree94c957fec9159052b17136461d4b816e75c6bbf4 /src/mongo/util/latch_analyzer_test.cpp
parent159d19b1d3b0164d0096ce225f987da4610cc5db (diff)
downloadmongo-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.cpp27
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();