aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp')
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp37
1 files changed, 30 insertions, 7 deletions
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
index 2605beadf3b..628bce36f3e 100644
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
@@ -1379,21 +1379,29 @@ TEST("Verify FrozenBucketsMap interface") {
}
}
-bool
-containsJob(const MaintenanceController::JobList &jobs, const vespalib::string &jobName)
+const MaintenanceJobRunner *
+findJob(const MaintenanceController::JobList &jobs, const vespalib::string &jobName)
{
auto itr = std::find_if(jobs.begin(), jobs.end(),
[&](const auto &job){ return job->getJob().getName() == jobName; });
- return itr != jobs.end();
+ if (itr != jobs.end()) {
+ return itr->get();
+ }
+ return nullptr;
+}
+
+bool
+containsJob(const MaintenanceController::JobList &jobs, const vespalib::string &jobName)
+{
+ return findJob(jobs, jobName) != nullptr;
}
bool
containsJobAndExecutedBy(const MaintenanceController::JobList &jobs, const vespalib::string &jobName,
const vespalib::Executor & executor)
{
- auto itr = std::find_if(jobs.begin(), jobs.end(),
- [&](const auto &job){ return job->getJob().getName() == jobName; });
- return itr != jobs.end() && (&(*itr)->getExecutor() == &executor);
+ const auto *job = findJob(jobs, jobName);
+ return (job != nullptr) && (&job->getExecutor() == &executor);
}
TEST_F("require that lid space compaction jobs can be disabled", MaintenanceControllerFixture)
@@ -1413,7 +1421,7 @@ TEST_F("require that lid space compaction jobs can be disabled", MaintenanceCont
}
}
-TEST_F("Require that maintenance jobs are run by correct executor", MaintenanceControllerFixture)
+TEST_F("require that maintenance jobs are run by correct executor", MaintenanceControllerFixture)
{
f.injectMaintenanceJobs();
auto jobs = f._mc.getJobList();
@@ -1425,6 +1433,21 @@ TEST_F("Require that maintenance jobs are run by correct executor", MaintenanceC
EXPECT_TRUE(containsJobAndExecutedBy(jobs, "sample_attribute_usage.searchdocument", f._threadService));
}
+void
+assertPruneRemovedDocumentsConfig(double expDelay, double expInterval, double interval, MaintenanceControllerFixture &f)
+{
+ f.setPruneConfig(DocumentDBPruneRemovedDocumentsConfig(interval, 1000));
+ const auto *job = findJob(f._mc.getJobList(), "prune_removed_documents.searchdocument");
+ EXPECT_EQUAL(expDelay, job->getJob().getDelay());
+ EXPECT_EQUAL(expInterval, job->getJob().getInterval());
+}
+
+TEST_F("require that delay for prune removed documents is set based on interval and is max 300 secs", MaintenanceControllerFixture)
+{
+ assertPruneRemovedDocumentsConfig(300, 301, 301, f);
+ assertPruneRemovedDocumentsConfig(299, 299, 299, f);
+}
+
TEST_MAIN()
{
TEST_RUN_ALL();