From 590ba4cf36cabd7b3116d9be1657bba569ba1c16 Mon Sep 17 00:00:00 2001 From: messense Date: Mon, 10 Feb 2025 20:22:15 +0800 Subject: [PATCH] Add more error message for conda create env --- tests/common/mod.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tests/common/mod.rs b/tests/common/mod.rs index ea051794c..14a88e367 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -1,4 +1,4 @@ -use anyhow::{bail, Result}; +use anyhow::{bail, Context, Result}; use fs_err as fs; use maturin::Target; use normpath::PathExt as _; @@ -85,6 +85,7 @@ pub fn maybe_mock_cargo() { } /// Better error formatting +#[track_caller] pub fn handle_result(result: Result) -> T { match result { Err(e) => { @@ -199,7 +200,21 @@ pub fn create_conda_env(name: &str, major: usize, minor: usize) -> Result<(PathB .arg("--json") .output() .expect("Conda not available."); - let result: CondaCreateResult = serde_json::from_slice(&output.stdout)?; + if !output.status.success() { + panic!( + "Failed to create conda environment: {}\n---stdout:\n{}---stderr:\n{}", + output.status, + str::from_utf8(&output.stdout)?, + str::from_utf8(&output.stderr)? + ); + } + let result: CondaCreateResult = serde_json::from_slice(&output.stdout).with_context(|| { + format!( + "Failed to deserialize conda create command output:\n---stdout:\n{}---stderr:\n{}", + str::from_utf8(&output.stdout).unwrap(), + str::from_utf8(&output.stderr).unwrap(), + ) + })?; if !result.success { bail!("Failed to create conda environment {}.", name); }