diff --git a/crates/rust-release-manifest/src/transparency.rs b/crates/rust-release-manifest/src/transparency.rs index 9b5b566..d4085b6 100644 --- a/crates/rust-release-manifest/src/transparency.rs +++ b/crates/rust-release-manifest/src/transparency.rs @@ -724,7 +724,10 @@ pub(crate) fn curl_stdin_config(access_key: &str, secret_key: &str) -> Vec { pub(crate) fn curl_command(args: &[OsString]) -> Command { let mut command = Command::new("curl"); - command.args(args).stdin(Stdio::piped()); + command + .args(args) + .stdin(Stdio::piped()) + .stdout(Stdio::piped()); command } diff --git a/crates/rust-release-manifest/src/transparency_tests.rs b/crates/rust-release-manifest/src/transparency_tests.rs index 6c7fe48..9334f3c 100644 --- a/crates/rust-release-manifest/src/transparency_tests.rs +++ b/crates/rust-release-manifest/src/transparency_tests.rs @@ -1163,6 +1163,17 @@ fn transparency_curl_credentials_are_stdin_only() { assert_eq!(curl_command(&args).get_envs().count(), 0); } +#[test] +fn transparency_curl_command_captures_status_stdout() { + let mut child = curl_command(&[OsString::from("--version")]) + .spawn() + .unwrap(); + drop(child.stdin.take()); + let output = child.wait_with_output().unwrap(); + assert!(output.status.success()); + assert!(output.stdout.starts_with(b"curl ")); +} + #[test] fn transparency_fake_records_destinations_and_ordered_calls() { let mut fake = DirectoryTransport::new();