summaryrefslogtreecommitdiffstats
path: root/storage/src/tests/distributor/mergeoperationtest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/src/tests/distributor/mergeoperationtest.cpp')
-rw-r--r--storage/src/tests/distributor/mergeoperationtest.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/storage/src/tests/distributor/mergeoperationtest.cpp b/storage/src/tests/distributor/mergeoperationtest.cpp
index 769651afd8d..d174a6335b7 100644
--- a/storage/src/tests/distributor/mergeoperationtest.cpp
+++ b/storage/src/tests/distributor/mergeoperationtest.cpp
@@ -35,8 +35,19 @@ struct MergeOperationTest : Test, DistributorStripeTestUtil {
void TearDown() override {
close();
}
+
+ std::shared_ptr<MergeOperation> setup_minimal_merge_op();
};
+std::shared_ptr<MergeOperation>
+MergeOperationTest::setup_minimal_merge_op()
+{
+ document::BucketId bucket_id(16, 1);
+ auto op = std::make_shared<MergeOperation>(BucketAndNodes(makeDocumentBucket(bucket_id), toVector<uint16_t>(0, 1, 2)));
+ op->setIdealStateManager(&getIdealStateManager());
+ return op;
+}
+
TEST_F(MergeOperationTest, simple) {
getClock().setAbsoluteTimeInSeconds(10);
@@ -500,4 +511,22 @@ TEST_F(MergeOperationTest, merge_operation_is_not_blocked_by_request_bucket_info
EXPECT_FALSE(op.isBlocked(operation_context(), _operation_sequencer));
}
+TEST_F(MergeOperationTest, on_blocked_updates_metrics)
+{
+ auto op = setup_minimal_merge_op();
+ auto metrics = getIdealStateManager().getMetrics().operations[IdealStateOperation::MERGE_BUCKET];
+ EXPECT_EQ(0, metrics->blocked.getValue());
+ op->on_blocked();
+ EXPECT_EQ(1, metrics->blocked.getValue());
+}
+
+TEST_F(MergeOperationTest, on_throttled_updates_metrics)
+{
+ auto op = setup_minimal_merge_op();
+ auto metrics = getIdealStateManager().getMetrics().operations[IdealStateOperation::MERGE_BUCKET];
+ EXPECT_EQ(0, metrics->throttled.getValue());
+ op->on_throttled();
+ EXPECT_EQ(1, metrics->throttled.getValue());
+}
+
} // storage::distributor