Improve diffing

This commit is contained in:
Mubelotix
2025-08-26 12:08:38 +02:00
parent c839b804fb
commit 1528cfe683
6 changed files with 31 additions and 7 deletions

View File

@ -42,3 +42,4 @@ tracing = "0.1.41"
tracing-subscriber = "0.3.19"
tracing-trace = { version = "0.1.0", path = "../tracing-trace" }
uuid = { version = "1.17.0", features = ["v7", "serde"] }
similar-asserts = "1.7.0"

View File

@ -129,7 +129,7 @@ async fn execute_run(
run_number: u16,
) -> anyhow::Result<tokio::task::JoinHandle<anyhow::Result<std::fs::File>>> {
delete_db().await;
let meilisearch = start_meili(
meili_client,
master_key,

View File

@ -7,6 +7,7 @@ use anyhow::{bail, Context as _};
use reqwest::StatusCode;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use similar_asserts::SimpleDiff;
use crate::common::assets::{fetch_asset, Asset};
use crate::common::client::{Client, Method};
@ -92,8 +93,8 @@ async fn run_batch(
let mut tasks = Vec::with_capacity(batch.len());
for batch in batch {
let client2 = Arc::clone(&client);
let assets2 = Arc::clone(&assets);
let client2 = Arc::clone(client);
let assets2 = Arc::clone(assets);
tasks.push(tokio::spawn(async move {
run(&client2, &batch, &assets2, asset_folder, return_response).await
}));
@ -112,7 +113,7 @@ async fn run_batch(
match sync {
SyncMode::DontWait => {}
SyncMode::WaitForResponse => {}
SyncMode::WaitForTask => wait_for_tasks(&client).await?,
SyncMode::WaitForTask => wait_for_tasks(client).await?,
}
Ok(outputs)
@ -226,7 +227,12 @@ pub async fn run(
.context("could not deserialize response as JSON")
.context("parsing response when checking 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}");
}
}

View File

@ -43,7 +43,8 @@ impl VersionOrLatest {
pub fn binary_path(&self, asset_folder: &str) -> anyhow::Result<Option<PathBuf>> {
match self {
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 local_filename = format!("meilisearch-{version}-{arch}");
asset_folder.push(local_filename);

View File

@ -124,7 +124,8 @@ impl TestWorkload {
&[String::from("--experimental-dumpless-upgrade")],
&self.name,
binary_path.as_deref(),
).await?;
)
.await?;
tracing::info!("Upgraded to {version}");
}
}