fixing tests had to make serial to cleanup
This commit is contained in:
parent
32049aee34
commit
f9ee535d4d
11 changed files with 307 additions and 61 deletions
175
src/lib/lib.rs
175
src/lib/lib.rs
|
|
@ -1,9 +1,7 @@
|
|||
use data_encoding::HEXUPPER;
|
||||
use ring::digest::{Context, Digest, SHA256};
|
||||
use std::{fs::{self, File},io::{BufReader, Read},os::unix::fs::PermissionsExt,path::Path};
|
||||
|
||||
|
||||
|
||||
use serial_test::serial;
|
||||
|
||||
pub mod extractors;
|
||||
|
||||
|
|
@ -40,31 +38,33 @@ use extractors::{
|
|||
// extract_exe
|
||||
};
|
||||
|
||||
#[test]
|
||||
fn test_extract_zip() {
|
||||
let input_path = Path::new("src/test_data/test.zip");
|
||||
let output_directory = create_permanent_dir();
|
||||
|
||||
// Extract the zip file
|
||||
let result = extract_zip(input_path, &output_directory);
|
||||
assert!(result.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||
|
||||
assert_eq!(checksum_01, true);
|
||||
assert_eq!(checksum_02, true);
|
||||
assert_eq!(checksum_03, true);
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_zip() {
|
||||
let input_path = Path::new("src/test_data/test.zip");
|
||||
let output_directory = create_temp_dir();
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
// Extract the zip file
|
||||
let result = extract_zip(input_path, &output_directory);
|
||||
assert!(result.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||
|
||||
assert_eq!(checksum_01, true);
|
||||
assert_eq!(checksum_02, true);
|
||||
assert_eq!(checksum_03, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_rar() {
|
||||
let input_path = Path::new("src/test_data/test.rar");
|
||||
let output_directory = create_temp_dir();
|
||||
|
|
@ -72,16 +72,25 @@ fn test_extract_zip() {
|
|||
assert!(result.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("src/test_data/checksum_02", "src/test_data/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("src/test_data/checksum_03", "src/test_data/testfile_03").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||
|
||||
println!["{}", checksum_01];
|
||||
assert_eq!(checksum_01, true);
|
||||
println!["{}", checksum_02];
|
||||
assert_eq!(checksum_02, true);
|
||||
println!["{}", checksum_03];
|
||||
assert_eq!(checksum_03, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_tar() {
|
||||
let input_path = Path::new("src/test_data/test.tar");
|
||||
let output_directory = create_temp_dir();
|
||||
|
|
@ -89,16 +98,25 @@ fn test_extract_zip() {
|
|||
assert!(result.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("src/test_data/checksum_02", "src/test_data/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("src/test_data/checksum_03", "src/test_data/testfile_03").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||
|
||||
println!["{}", checksum_01];
|
||||
assert_eq!(checksum_01, true);
|
||||
println!["{}", checksum_02];
|
||||
assert_eq!(checksum_02, true);
|
||||
println!["{}", checksum_03];
|
||||
assert_eq!(checksum_03, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_lzma() {
|
||||
let input_path = Path::new("src/test_data/test.lzma");
|
||||
let csum_path = Path::new("src/test_data/test_csum.lzma");
|
||||
|
|
@ -109,11 +127,17 @@ fn test_extract_zip() {
|
|||
assert!(checksum.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
assert_eq!(checksum_01, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_gz() {
|
||||
let input_path = Path::new("src/test_data/test.gz");
|
||||
let csum_path = Path::new("src/test_data/test_csum.gz");
|
||||
|
|
@ -124,11 +148,17 @@ fn test_extract_zip() {
|
|||
assert!(checksum.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
assert_eq!(checksum_01, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_bz2() {
|
||||
let input_path = Path::new("src/test_data/test.bz2");
|
||||
let csum_path = Path::new("src/test_data/test_csum.bz2");
|
||||
|
|
@ -139,11 +169,17 @@ fn test_extract_zip() {
|
|||
assert!(checksum.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
assert_eq!(checksum_01, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_7z() {
|
||||
let input_path = Path::new("src/test_data/test.7z");
|
||||
let output_directory = create_temp_dir();
|
||||
|
|
@ -151,16 +187,22 @@ fn test_extract_zip() {
|
|||
assert!(result.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("src/test_data/checksum_02", "src/test_data/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("src/test_data/checksum_03", "src/test_data/testfile_03").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||
|
||||
assert_eq!(checksum_01, true);
|
||||
assert_eq!(checksum_02, true);
|
||||
assert_eq!(checksum_03, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_tbz2() {
|
||||
let input_path = Path::new("src/test_data/test.tbz2");
|
||||
let output_directory = create_temp_dir();
|
||||
|
|
@ -170,16 +212,22 @@ fn test_extract_zip() {
|
|||
assert!(result.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("src/test_data/checksum_02", "src/test_data/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("src/test_data/checksum_03", "src/test_data/testfile_03").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||
|
||||
assert_eq!(checksum_01, true);
|
||||
assert_eq!(checksum_02, true);
|
||||
assert_eq!(checksum_03, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_tgz() {
|
||||
let input_path = Path::new("src/test_data/test.tgz");
|
||||
let output_directory = create_temp_dir();
|
||||
|
|
@ -189,16 +237,22 @@ fn test_extract_zip() {
|
|||
assert!(result.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("src/test_data/checksum_02", "src/test_data/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("src/test_data/checksum_03", "src/test_data/testfile_03").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||
|
||||
assert_eq!(checksum_01, true);
|
||||
assert_eq!(checksum_02, true);
|
||||
assert_eq!(checksum_03, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_extract_txz() {
|
||||
let input_path = Path::new("src/test_data/test.txz");
|
||||
let output_directory = create_temp_dir();
|
||||
|
|
@ -208,13 +262,18 @@ fn test_extract_zip() {
|
|||
assert!(result.is_ok());
|
||||
|
||||
// Check checksums and assert equality
|
||||
let checksum_01 = verify_checksum("src/test_data/checksum_01", "src/test_data/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("src/test_data/checksum_02", "src/test_data/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("src/test_data/checksum_03", "src/test_data/testfile_03").unwrap();
|
||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").unwrap();
|
||||
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||
|
||||
assert_eq!(checksum_01, true);
|
||||
assert_eq!(checksum_02, true);
|
||||
assert_eq!(checksum_03, true);
|
||||
|
||||
// Delete the test directory at the end of the test
|
||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||
eprintln!("Failed to delete test directory: {:?}", err);
|
||||
}
|
||||
}
|
||||
|
||||
fn verify_checksum(checksum_path: &str, testfile_path: &str) -> Result<bool, std::io::Error> {
|
||||
|
|
@ -248,22 +307,16 @@ fn test_extract_zip() {
|
|||
}
|
||||
|
||||
fn create_temp_dir() -> PathBuf {
|
||||
let mut temp_dir = std::env::temp_dir();
|
||||
temp_dir.push("test_dir");
|
||||
fs::create_dir_all(&temp_dir).expect("Failed to create temp directory");
|
||||
temp_dir
|
||||
}
|
||||
fn create_permanent_dir() -> PathBuf {
|
||||
// Specify the absolute path for the permanent directory
|
||||
let permanent_dir = Path::new("test_dir");
|
||||
// Specify the absolute path for the permanent directory
|
||||
let temp_dir = Path::new("test_dir");
|
||||
|
||||
// Create the directory if it doesn't exist
|
||||
if !temp_dir.exists() {
|
||||
fs::create_dir_all(&temp_dir).expect("Failed to create temp directory");
|
||||
}
|
||||
temp_dir.to_path_buf()
|
||||
}
|
||||
|
||||
// Create the directory if it doesn't exist
|
||||
if !permanent_dir.exists() {
|
||||
fs::create_dir_all(&permanent_dir).expect("Failed to create permanent directory");
|
||||
}
|
||||
|
||||
permanent_dir.to_path_buf()
|
||||
}
|
||||
fn sha256_digest<R: Read>(mut reader: R) -> Result<Digest, std::io::Error> {
|
||||
let mut context = Context::new(&SHA256);
|
||||
let mut buffer = [0; 1024];
|
||||
|
|
|
|||
1
src/test_data/checksum_01
Normal file
1
src/test_data/checksum_01
Normal file
|
|
@ -0,0 +1 @@
|
|||
c63a52591e30851e2dc94705902a592dea89c3134166df1c0a8979f90d9ea0a2 testfile_01
|
||||
1
src/test_data/checksum_02
Normal file
1
src/test_data/checksum_02
Normal file
|
|
@ -0,0 +1 @@
|
|||
dd5c253429a3a1a34e382ff0158555d4a573ace73c1a4fb60e5b215053d8b6ab testfile_02
|
||||
1
src/test_data/checksum_03
Normal file
1
src/test_data/checksum_03
Normal file
|
|
@ -0,0 +1 @@
|
|||
1e103ac2fc72820330a578900880744481726c7752ead976e3a30963ee4b39bc testfile_03
|
||||
BIN
src/test_data/testfile_01
Normal file
BIN
src/test_data/testfile_01
Normal file
Binary file not shown.
BIN
src/test_data/testfile_02
Normal file
BIN
src/test_data/testfile_02
Normal file
Binary file not shown.
BIN
src/test_data/testfile_03
Normal file
BIN
src/test_data/testfile_03
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue