summaryrefslogtreecommitdiff
path: root/src/mongo/db/curop_test.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-18 17:02:53 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-18 17:02:53 -0300
commit959575a5ca598bf5f37fb5cebe7ed1d80d3d71f7 (patch)
treeacc8d60aedb12b70048e676e8a7349deb0010db8 /src/mongo/db/curop_test.cpp
parent76588293975fc059cf076779e4283e6ffaf8afff (diff)
New upstream version 6.0.20upstream
Diffstat (limited to 'src/mongo/db/curop_test.cpp')
-rw-r--r--src/mongo/db/curop_test.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/mongo/db/curop_test.cpp b/src/mongo/db/curop_test.cpp
index 332e7d9042e..af327f05482 100644
--- a/src/mongo/db/curop_test.cpp
+++ b/src/mongo/db/curop_test.cpp
@@ -67,6 +67,10 @@ TEST(CurOpTest, AddingAdditiveMetricsObjectsTogetherShouldAddFieldsTogether) {
additiveMetricsToAdd.docsExamined = 2;
currentAdditiveMetrics.nMatched = 5;
additiveMetricsToAdd.nMatched = 5;
+ currentAdditiveMetrics.nreturned = 10;
+ additiveMetricsToAdd.nreturned = 5;
+ currentAdditiveMetrics.nBatches = 2;
+ additiveMetricsToAdd.nBatches = 1;
currentAdditiveMetrics.nModified = 3;
additiveMetricsToAdd.nModified = 1;
currentAdditiveMetrics.ninserted = 4;
@@ -79,6 +83,8 @@ TEST(CurOpTest, AddingAdditiveMetricsObjectsTogetherShouldAddFieldsTogether) {
additiveMetricsToAdd.keysInserted = 5;
currentAdditiveMetrics.keysDeleted = 4;
additiveMetricsToAdd.keysDeleted = 2;
+ currentAdditiveMetrics.executionTime = Microseconds{200};
+ additiveMetricsToAdd.executionTime = Microseconds{80};
currentAdditiveMetrics.prepareReadConflicts.store(1);
additiveMetricsToAdd.prepareReadConflicts.store(5);
currentAdditiveMetrics.writeConflicts.store(7);
@@ -96,6 +102,10 @@ TEST(CurOpTest, AddingAdditiveMetricsObjectsTogetherShouldAddFieldsTogether) {
*additiveMetricsBeforeAdd.docsExamined + *additiveMetricsToAdd.docsExamined);
ASSERT_EQ(*currentAdditiveMetrics.nMatched,
*additiveMetricsBeforeAdd.nMatched + *additiveMetricsToAdd.nMatched);
+ ASSERT_EQ(*currentAdditiveMetrics.nreturned,
+ *additiveMetricsBeforeAdd.nreturned + *additiveMetricsToAdd.nreturned);
+ ASSERT_EQ(*currentAdditiveMetrics.nBatches,
+ *additiveMetricsBeforeAdd.nBatches + *additiveMetricsToAdd.nBatches);
ASSERT_EQ(*currentAdditiveMetrics.nModified,
*additiveMetricsBeforeAdd.nModified + *additiveMetricsToAdd.nModified);
ASSERT_EQ(*currentAdditiveMetrics.ninserted,
@@ -108,6 +118,8 @@ TEST(CurOpTest, AddingAdditiveMetricsObjectsTogetherShouldAddFieldsTogether) {
*additiveMetricsBeforeAdd.keysInserted + *additiveMetricsToAdd.keysInserted);
ASSERT_EQ(*currentAdditiveMetrics.keysDeleted,
*additiveMetricsBeforeAdd.keysDeleted + *additiveMetricsToAdd.keysDeleted);
+ ASSERT_EQ(*currentAdditiveMetrics.executionTime,
+ *additiveMetricsBeforeAdd.executionTime + *additiveMetricsToAdd.executionTime);
ASSERT_EQ(currentAdditiveMetrics.prepareReadConflicts.load(),
additiveMetricsBeforeAdd.prepareReadConflicts.load() +
additiveMetricsToAdd.prepareReadConflicts.load());
@@ -123,6 +135,8 @@ TEST(CurOpTest, AddingUninitializedAdditiveMetricsFieldsShouldBeTreatedAsZero) {
// Initialize field values for both AdditiveMetrics objects.
additiveMetricsToAdd.keysExamined = 5;
currentAdditiveMetrics.docsExamined = 4;
+ currentAdditiveMetrics.nreturned = 2;
+ additiveMetricsToAdd.nBatches = 1;
currentAdditiveMetrics.nModified = 3;
additiveMetricsToAdd.ninserted = 0;
currentAdditiveMetrics.keysInserted = 6;
@@ -147,6 +161,14 @@ TEST(CurOpTest, AddingUninitializedAdditiveMetricsFieldsShouldBeTreatedAsZero) {
// should be treated as zero.
ASSERT_EQ(*currentAdditiveMetrics.docsExamined, *additiveMetricsBeforeAdd.docsExamined);
+ // The 'nreturned' field for the AdditiveMetrics object to add was not initialized, so it
+ // should be treated as zero.
+ ASSERT_EQ(*currentAdditiveMetrics.nreturned, *additiveMetricsBeforeAdd.nreturned);
+
+ // The 'nBatches' field for the current AdditiveMetrics object was not initialized, so it
+ // should be treated as zero.
+ ASSERT_EQ(*currentAdditiveMetrics.nBatches, *additiveMetricsToAdd.nBatches);
+
// The 'nMatched' field for both the current AdditiveMetrics object and the AdditiveMetrics
// object to add were not initialized, so nMatched should still be uninitialized after the add.
ASSERT_EQ(currentAdditiveMetrics.nMatched, boost::none);
@@ -155,6 +177,11 @@ TEST(CurOpTest, AddingUninitializedAdditiveMetricsFieldsShouldBeTreatedAsZero) {
// object to add were not initialized, so nUpserted should still be uninitialized after the add.
ASSERT_EQ(currentAdditiveMetrics.nUpserted, boost::none);
+ // The 'executionTime' field for both the current AdditiveMetrics object and the AdditiveMetrics
+ // object to add were not initialized, so executionTime should still be uninitialized after the
+ // add.
+ ASSERT_EQ(currentAdditiveMetrics.executionTime, boost::none);
+
// The following field values should have changed after adding.
ASSERT_EQ(*currentAdditiveMetrics.keysInserted,
*additiveMetricsBeforeAdd.keysInserted + *additiveMetricsToAdd.keysInserted);
@@ -175,6 +202,8 @@ TEST(CurOpTest, AdditiveMetricsFieldsShouldIncrementByN) {
additiveMetrics.writeConflicts.store(1);
additiveMetrics.keysInserted = 2;
additiveMetrics.prepareReadConflicts.store(6);
+ additiveMetrics.nreturned = 3;
+ additiveMetrics.executionTime = Microseconds{160};
// Increment the fields.
additiveMetrics.incrementWriteConflicts(1);
@@ -183,6 +212,9 @@ TEST(CurOpTest, AdditiveMetricsFieldsShouldIncrementByN) {
additiveMetrics.incrementNinserted(3);
additiveMetrics.incrementNUpserted(6);
additiveMetrics.incrementPrepareReadConflicts(2);
+ additiveMetrics.incrementNreturned(2);
+ additiveMetrics.incrementNBatches();
+ additiveMetrics.incrementExecutionTime(Microseconds{120});
ASSERT_EQ(additiveMetrics.writeConflicts.load(), 2);
ASSERT_EQ(*additiveMetrics.keysInserted, 7);
@@ -190,6 +222,9 @@ TEST(CurOpTest, AdditiveMetricsFieldsShouldIncrementByN) {
ASSERT_EQ(*additiveMetrics.ninserted, 3);
ASSERT_EQ(*additiveMetrics.nUpserted, 6);
ASSERT_EQ(additiveMetrics.prepareReadConflicts.load(), 8);
+ ASSERT_EQ(*additiveMetrics.nreturned, 5);
+ ASSERT_EQ(*additiveMetrics.nBatches, 1);
+ ASSERT_EQ(*additiveMetrics.executionTime, Microseconds{280});
}
TEST(CurOpTest, OptionalAdditiveMetricsNotDisplayedIfUninitialized) {