fixing tests had to make serial to cleanup

This commit is contained in:
specCon18 2023-09-21 01:09:50 -04:00
parent 32049aee34
commit f9ee535d4d
11 changed files with 307 additions and 61 deletions

View file

@ -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];

View file

@ -0,0 +1 @@
c63a52591e30851e2dc94705902a592dea89c3134166df1c0a8979f90d9ea0a2 testfile_01

View file

@ -0,0 +1 @@
dd5c253429a3a1a34e382ff0158555d4a573ace73c1a4fb60e5b215053d8b6ab testfile_02

View file

@ -0,0 +1 @@
1e103ac2fc72820330a578900880744481726c7752ead976e3a30963ee4b39bc testfile_03

BIN
src/test_data/testfile_01 Normal file

Binary file not shown.

BIN
src/test_data/testfile_02 Normal file

Binary file not shown.

BIN
src/test_data/testfile_03 Normal file

Binary file not shown.