mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-09-23 13:16:27 +00:00
Improve diffing
This commit is contained in:
15
Cargo.lock
generated
15
Cargo.lock
generated
@ -5682,6 +5682,20 @@ name = "similar"
|
|||||||
version = "2.7.0"
|
version = "2.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa"
|
checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa"
|
||||||
|
dependencies = [
|
||||||
|
"bstr",
|
||||||
|
"unicode-segmentation",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "similar-asserts"
|
||||||
|
version = "1.7.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b5b441962c817e33508847a22bd82f03a30cff43642dc2fae8b050566121eb9a"
|
||||||
|
dependencies = [
|
||||||
|
"console",
|
||||||
|
"similar",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "simple_asn1"
|
name = "simple_asn1"
|
||||||
@ -7291,6 +7305,7 @@ dependencies = [
|
|||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"sha2",
|
"sha2",
|
||||||
|
"similar-asserts",
|
||||||
"sysinfo",
|
"sysinfo",
|
||||||
"time",
|
"time",
|
||||||
"tokio",
|
"tokio",
|
||||||
|
@ -42,3 +42,4 @@ tracing = "0.1.41"
|
|||||||
tracing-subscriber = "0.3.19"
|
tracing-subscriber = "0.3.19"
|
||||||
tracing-trace = { version = "0.1.0", path = "../tracing-trace" }
|
tracing-trace = { version = "0.1.0", path = "../tracing-trace" }
|
||||||
uuid = { version = "1.17.0", features = ["v7", "serde"] }
|
uuid = { version = "1.17.0", features = ["v7", "serde"] }
|
||||||
|
similar-asserts = "1.7.0"
|
||||||
|
@ -129,7 +129,7 @@ async fn execute_run(
|
|||||||
run_number: u16,
|
run_number: u16,
|
||||||
) -> anyhow::Result<tokio::task::JoinHandle<anyhow::Result<std::fs::File>>> {
|
) -> anyhow::Result<tokio::task::JoinHandle<anyhow::Result<std::fs::File>>> {
|
||||||
delete_db().await;
|
delete_db().await;
|
||||||
|
|
||||||
let meilisearch = start_meili(
|
let meilisearch = start_meili(
|
||||||
meili_client,
|
meili_client,
|
||||||
master_key,
|
master_key,
|
||||||
|
@ -7,6 +7,7 @@ use anyhow::{bail, Context as _};
|
|||||||
use reqwest::StatusCode;
|
use reqwest::StatusCode;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
use similar_asserts::SimpleDiff;
|
||||||
|
|
||||||
use crate::common::assets::{fetch_asset, Asset};
|
use crate::common::assets::{fetch_asset, Asset};
|
||||||
use crate::common::client::{Client, Method};
|
use crate::common::client::{Client, Method};
|
||||||
@ -92,8 +93,8 @@ async fn run_batch(
|
|||||||
|
|
||||||
let mut tasks = Vec::with_capacity(batch.len());
|
let mut tasks = Vec::with_capacity(batch.len());
|
||||||
for batch in batch {
|
for batch in batch {
|
||||||
let client2 = Arc::clone(&client);
|
let client2 = Arc::clone(client);
|
||||||
let assets2 = Arc::clone(&assets);
|
let assets2 = Arc::clone(assets);
|
||||||
tasks.push(tokio::spawn(async move {
|
tasks.push(tokio::spawn(async move {
|
||||||
run(&client2, &batch, &assets2, asset_folder, return_response).await
|
run(&client2, &batch, &assets2, asset_folder, return_response).await
|
||||||
}));
|
}));
|
||||||
@ -112,7 +113,7 @@ async fn run_batch(
|
|||||||
match sync {
|
match sync {
|
||||||
SyncMode::DontWait => {}
|
SyncMode::DontWait => {}
|
||||||
SyncMode::WaitForResponse => {}
|
SyncMode::WaitForResponse => {}
|
||||||
SyncMode::WaitForTask => wait_for_tasks(&client).await?,
|
SyncMode::WaitForTask => wait_for_tasks(client).await?,
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(outputs)
|
Ok(outputs)
|
||||||
@ -226,7 +227,12 @@ pub async fn run(
|
|||||||
.context("could not deserialize response as JSON")
|
.context("could not deserialize response as JSON")
|
||||||
.context("parsing response when checking expected response")?;
|
.context("parsing response when checking expected response")?;
|
||||||
if &response != expected_response {
|
if &response != expected_response {
|
||||||
bail!("unexpected response: got '{response}', expected '{expected_response}'");
|
let expected_pretty = serde_json::to_string_pretty(expected_response)
|
||||||
|
.context("serializing expected response as pretty JSON")?;
|
||||||
|
let response_pretty = serde_json::to_string_pretty(&response)
|
||||||
|
.context("serializing response as pretty JSON")?;
|
||||||
|
let diff = SimpleDiff::from_str(&expected_pretty, &response_pretty, "expected", "got");
|
||||||
|
bail!("unexpected response:\n{diff}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,8 @@ impl VersionOrLatest {
|
|||||||
pub fn binary_path(&self, asset_folder: &str) -> anyhow::Result<Option<PathBuf>> {
|
pub fn binary_path(&self, asset_folder: &str) -> anyhow::Result<Option<PathBuf>> {
|
||||||
match self {
|
match self {
|
||||||
VersionOrLatest::Version(version) => {
|
VersionOrLatest::Version(version) => {
|
||||||
let mut asset_folder: PathBuf = asset_folder.parse().context("parsing asset folder")?;
|
let mut asset_folder: PathBuf =
|
||||||
|
asset_folder.parse().context("parsing asset folder")?;
|
||||||
let arch = get_arch()?;
|
let arch = get_arch()?;
|
||||||
let local_filename = format!("meilisearch-{version}-{arch}");
|
let local_filename = format!("meilisearch-{version}-{arch}");
|
||||||
asset_folder.push(local_filename);
|
asset_folder.push(local_filename);
|
||||||
|
@ -124,7 +124,8 @@ impl TestWorkload {
|
|||||||
&[String::from("--experimental-dumpless-upgrade")],
|
&[String::from("--experimental-dumpless-upgrade")],
|
||||||
&self.name,
|
&self.name,
|
||||||
binary_path.as_deref(),
|
binary_path.as_deref(),
|
||||||
).await?;
|
)
|
||||||
|
.await?;
|
||||||
tracing::info!("Upgraded to {version}");
|
tracing::info!("Upgraded to {version}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user