Skip to content

Commit 3cb29e7

Browse files
committed
Partial fix for tests
1 parent 2182b07 commit 3cb29e7

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/read.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1629,6 +1629,7 @@ pub fn read_zipfile_from_stream<R: Read>(reader: &mut R) -> ZipResult<Option<Zip
16291629

16301630
#[cfg(test)]
16311631
mod test {
1632+
use std::fs::remove_dir;
16321633
use crate::result::ZipResult;
16331634
use crate::write::SimpleFileOptions;
16341635
use crate::CompressionMethod::Stored;
@@ -1926,10 +1927,20 @@ mod test {
19261927
writer.add_symlink("a/", "b/x/", SimpleFileOptions::default())?;
19271928
writer.add_symlink("b/", "a/x/", SimpleFileOptions::default())?;
19281929
let mut reader = writer.finish_into_readable()?;
1929-
let temp_dir = temp_dir();
1930+
let temp_dir = temp_dir().join("read_symlink_loop");
1931+
create_dir(&temp_dir)?;
19301932
assert!(reader.extract(&temp_dir).is_err());
1933+
let _ = remove_dir(temp_dir.join("a"));
1934+
let _ = remove_dir(temp_dir.join("b"));
19311935
create_dir(temp_dir.join("a"))?;
19321936
assert!(reader.extract(&temp_dir).is_err());
1937+
let _ = remove_dir(temp_dir.join("a"));
1938+
let _ = remove_dir(temp_dir.join("b"));
1939+
create_dir(temp_dir.join("b"))?;
1940+
assert!(reader.extract(&temp_dir).is_err());
1941+
let _ = remove_dir(temp_dir.join("a"));
1942+
let _ = remove_dir(temp_dir.join("b"));
1943+
create_dir(temp_dir.join("a"))?;
19331944
create_dir(temp_dir.join("b"))?;
19341945
assert!(reader.extract(&temp_dir).is_err());
19351946
Ok(())

src/read/stream.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ impl ZipStreamFileMetadata {
207207
mod test {
208208
use super::*;
209209
use std::collections::BTreeSet;
210+
use std::fs::remove_dir;
210211
use std::io::Cursor;
211212
use crate::write::SimpleFileOptions;
212213
use crate::ZipWriter;
@@ -394,12 +395,23 @@ mod test {
394395
writer.add_symlink("a/", "b/x/", SimpleFileOptions::default())?;
395396
writer.add_symlink("b/", "a/x/", SimpleFileOptions::default())?;
396397
let zipfile = writer.finish()?.into_inner();
397-
let temp_dir = temp_dir();
398+
let temp_dir = temp_dir().join("stream_symlink_loop");
399+
create_dir(&temp_dir)?;
398400
let reader = ZipStreamReader::new(Cursor::new(&zipfile));
399401
assert!(reader.extract(&temp_dir).is_err());
402+
let _ = remove_dir(temp_dir.join("a"));
403+
let _ = remove_dir(temp_dir.join("b"));
400404
create_dir(temp_dir.join("a"))?;
401405
let reader = ZipStreamReader::new(Cursor::new(&zipfile));
402406
assert!(reader.extract(&temp_dir).is_err());
407+
let _ = remove_dir(temp_dir.join("a"));
408+
let _ = remove_dir(temp_dir.join("b"));
409+
create_dir(temp_dir.join("b"))?;
410+
let reader = ZipStreamReader::new(Cursor::new(&zipfile));
411+
assert!(reader.extract(&temp_dir).is_err());
412+
let _ = remove_dir(temp_dir.join("a"));
413+
let _ = remove_dir(temp_dir.join("b"));
414+
create_dir(temp_dir.join("a"))?;
403415
create_dir(temp_dir.join("b"))?;
404416
let reader = ZipStreamReader::new(Cursor::new(&zipfile));
405417
assert!(reader.extract(&temp_dir).is_err());

0 commit comments

Comments
 (0)