2021-03-25 10:24:33 +01:00
|
|
|
use std::time::Duration;
|
|
|
|
|
|
|
|
use crate::common::server::default_settings;
|
|
|
|
use crate::common::GetAllDocumentsOptions;
|
|
|
|
use crate::common::Server;
|
|
|
|
use tokio::time::sleep;
|
|
|
|
|
|
|
|
use meilisearch_http::Opt;
|
|
|
|
|
|
|
|
#[actix_rt::test]
|
|
|
|
async fn perform_snapshot() {
|
|
|
|
let temp = tempfile::tempdir_in(".").unwrap();
|
|
|
|
let snapshot_dir = tempfile::tempdir_in(".").unwrap();
|
|
|
|
|
|
|
|
let options = Opt {
|
|
|
|
snapshot_dir: snapshot_dir.path().to_owned(),
|
|
|
|
snapshot_interval_sec: 1,
|
|
|
|
schedule_snapshot: true,
|
|
|
|
..default_settings(temp.path())
|
|
|
|
};
|
|
|
|
|
|
|
|
let server = Server::new_with_options(options).await;
|
|
|
|
let index = server.index("test");
|
|
|
|
index.load_test_set().await;
|
|
|
|
|
|
|
|
let (response, _) = index
|
|
|
|
.get_all_documents(GetAllDocumentsOptions::default())
|
|
|
|
.await;
|
|
|
|
|
|
|
|
sleep(Duration::from_secs(2)).await;
|
|
|
|
|
|
|
|
let temp = tempfile::tempdir_in(".").unwrap();
|
|
|
|
|
|
|
|
let snapshot_path = snapshot_dir
|
|
|
|
.path()
|
|
|
|
.to_owned()
|
2021-03-22 19:17:18 +01:00
|
|
|
.join("db.snapshot".to_string());
|
2021-03-25 10:24:33 +01:00
|
|
|
|
|
|
|
let options = Opt {
|
|
|
|
import_snapshot: Some(snapshot_path),
|
|
|
|
..default_settings(temp.path())
|
|
|
|
};
|
|
|
|
|
|
|
|
let server = Server::new_with_options(options).await;
|
|
|
|
let index = server.index("test");
|
|
|
|
|
|
|
|
let (response_from_snapshot, _) = index
|
|
|
|
.get_all_documents(GetAllDocumentsOptions::default())
|
|
|
|
.await;
|
|
|
|
|
|
|
|
assert_eq!(response, response_from_snapshot);
|
|
|
|
}
|