mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-06-11 02:21:36 +02:00
add a test
This commit is contained in:
parent
8608d10fa2
commit
0940f0e4f4
@ -929,3 +929,30 @@ fn create_and_list_index() {
|
||||
]
|
||||
"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_scheduler_doesnt_run_with_zero_batched_tasks() {
|
||||
let (index_scheduler, mut handle) = IndexScheduler::test_with_custom_config(vec![], |config| {
|
||||
config.max_number_of_batched_tasks = 0;
|
||||
None
|
||||
});
|
||||
|
||||
handle.scheduler_is_down();
|
||||
|
||||
// Register a task
|
||||
index_scheduler
|
||||
.register(
|
||||
KindWithContent::IndexCreation { index_uid: S("doggos"), primary_key: None },
|
||||
None,
|
||||
false,
|
||||
)
|
||||
.unwrap();
|
||||
snapshot!(snapshot_index_scheduler(&index_scheduler), name: "registered_task");
|
||||
|
||||
handle.scheduler_is_down();
|
||||
|
||||
// If we restart the scheduler, it should run properly.
|
||||
let (index_scheduler, mut handle) = handle.restart(index_scheduler, true, vec![], |_| None);
|
||||
handle.advance_n_successful_batches(1);
|
||||
snapshot!(snapshot_index_scheduler(&index_scheduler), name: "after_restart");
|
||||
}
|
||||
|
@ -118,6 +118,9 @@ impl IndexScheduler {
|
||||
(versioning::VERSION_MAJOR, versioning::VERSION_MINOR, versioning::VERSION_PATCH)
|
||||
});
|
||||
|
||||
// If the number of batched tasks is 0, the scheduler will not run and we can't do the init check.
|
||||
let skip_init = options.max_number_of_batched_tasks == 0;
|
||||
|
||||
std::fs::create_dir_all(&options.auth_path).unwrap();
|
||||
let auth_env = open_auth_store_env(&options.auth_path).unwrap();
|
||||
let index_scheduler =
|
||||
@ -126,7 +129,11 @@ impl IndexScheduler {
|
||||
// To be 100% consistent between all test we're going to start the scheduler right now
|
||||
// and ensure it's in the expected starting state.
|
||||
let breakpoint = match receiver.recv_timeout(std::time::Duration::from_secs(10)) {
|
||||
Ok(b) if skip_init => {
|
||||
panic!("The scheduler was not supposed to start, but it did: {b:?}.")
|
||||
}
|
||||
Ok(b) => b,
|
||||
Err(_) if skip_init => (Init, false),
|
||||
Err(RecvTimeoutError::Timeout) => {
|
||||
panic!("The scheduler seems to be waiting for a new task while your test is waiting for a breakpoint.")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user