From 80b7e48ca133ec4f2700f9f4bc4878b51ea37d43 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 09:41:20 +0000 Subject: [PATCH] Add error path tests for unzip_archive Co-authored-by: Tcode-Motion <188012755+Tcode-Motion@users.noreply.github.com> --- stdlib/src/compress.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/stdlib/src/compress.rs b/stdlib/src/compress.rs index b4c8eba1..6c35e0de 100644 --- a/stdlib/src/compress.rs +++ b/stdlib/src/compress.rs @@ -292,3 +292,31 @@ pub fn gunzip_archive(archive_path: &str, dst_file: &str) -> std::io::Result<()> std::io::copy(&mut decoder, &mut output)?; Ok(()) } + +#[cfg(test)] +mod tests { + use super::*; + use std::path::Path; + + #[test] + fn test_unzip_archive_invalid_path() { + let result = unzip_archive("non_existent_archive.zip", "dest_dir"); + assert!(result.is_err()); + } + + #[test] + fn test_unzip_archive_corrupted_zip() { + let temp_dir = std::env::temp_dir().join("techscript_unzip_test"); + std::fs::create_dir_all(&temp_dir).unwrap(); + + let corrupted_zip_path = temp_dir.join("corrupted.zip"); + std::fs::write(&corrupted_zip_path, b"not a valid zip file").unwrap(); + + let dest_dir = temp_dir.join("dest"); + + let result = unzip_archive(corrupted_zip_path.to_str().unwrap(), dest_dir.to_str().unwrap()); + assert!(result.is_err()); + + std::fs::remove_dir_all(&temp_dir).unwrap(); + } +}