diff --git a/src/lib/lib.rs b/src/lib/lib.rs index 858048e..4e631e7 100644 --- a/src/lib/lib.rs +++ b/src/lib/lib.rs @@ -43,7 +43,6 @@ use extractors::{ fn test_extract_zip() { let input_path = Path::new("src/test_data/test.zip"); let output_directory = create_temp_dir(); - let perms = 644; // Extract the zip file let result = extract_zip(input_path, &output_directory); @@ -51,95 +50,32 @@ use extractors::{ // 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); + + let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap(); assert_eq!(checksum_02, true); + + let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap(); assert_eq!(checksum_03, true); // Check Permissions match original 644 compression perms + let tf1_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf1_perms.is_ok()); - let tf1 = File::open("test_dir/testfile_01").expect("Failed to open test file"); - let tf1_metadata = tf1.metadata(); - let tf1_permissions = tf1_metadata.expect("Failed to open test file").permissions(); - let tf1_mode = tf1_permissions.mode(); - let tf1_chmod = mode_to_chmod(tf1_mode); - let tf1_perms_eq; - if tf1_chmod == perms { - tf1_perms_eq = true; - } else { - tf1_perms_eq = false; - } - - let tf2 = File::open("test_dir/testfile_02").expect("Failed to open test file"); - let tf2_metadata = tf2.metadata(); - let tf2_permissions = tf2_metadata.expect("Failed to open test file").permissions(); - let tf2_mode = tf2_permissions.mode(); - let tf2_chmod = mode_to_chmod(tf2_mode); - let tf2_perms_eq; - if tf2_chmod == perms { - tf2_perms_eq = true; - } else { - tf2_perms_eq = false; - } - - let tf3 = File::open("test_dir/testfile_01").expect("Failed to open test file"); - let tf3_metadata = tf3.metadata(); - let tf3_permissions = tf3_metadata.expect("Failed to open test file").permissions(); - let tf3_mode = tf3_permissions.mode(); - let tf3_chmod = mode_to_chmod(tf3_mode); - let tf3_perms_eq; - if tf3_chmod == perms { - tf3_perms_eq = true; - } else { - tf3_perms_eq = false; - } + let tf2_perms = check_permissions("test_dir/testfile_02",644); + assert!(tf2_perms.is_ok()); - let csum1 = File::open("test_dir/checksum_01").expect("Failed to open test file"); - let csum1_metadata = csum1.metadata(); - let csum1_permissions = csum1_metadata.expect("Failed to open test file").permissions(); - let csum1_mode = csum1_permissions.mode(); - let csum1_chmod = mode_to_chmod(csum1_mode); - let csum1_perms_eq; - if csum1_chmod == perms { - csum1_perms_eq = true; - } else { - csum1_perms_eq = false; - } + let tf3_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf3_perms.is_ok()); - let csum2 = File::open("test_dir/checksum_02").expect("Failed to open test file"); - let csum2_metadata = csum2.metadata(); - let csum2_permissions = csum2_metadata.expect("Failed to open test file").permissions(); - let csum2_mode = csum2_permissions.mode(); - let csum2_chmod = mode_to_chmod(csum2_mode); - let csum2_perms_eq; - if csum2_chmod == perms { - csum2_perms_eq = true; - } else { - csum2_perms_eq = false; - } + let csum1_perms = check_permissions("test_dir/checksum_01",644); + assert!(csum1_perms.is_ok()); - let csum3 = File::open("test_dir/checksum_03").expect("Failed to open test file"); - let csum3_metadata = csum3.metadata(); - let csum3_permissions = csum3_metadata.expect("Failed to open test file").permissions(); - let csum3_mode = csum3_permissions.mode(); - let csum3_chmod = mode_to_chmod(csum3_mode); - let csum3_perms_eq; - if csum3_chmod == perms { - csum3_perms_eq = true; - } else { - csum3_perms_eq = false; - } + let csum2_perms = check_permissions("test_dir/checksum_02",644); + assert!(csum2_perms.is_ok()); - let perms_eq; - if csum1_perms_eq == true && csum2_perms_eq == true && csum3_perms_eq == true && tf1_perms_eq == true && tf2_perms_eq == true && tf3_perms_eq == true { - perms_eq = true; - } else { - perms_eq = false; - } - - assert_eq!(perms_eq,true); + let csum3_perms = check_permissions("test_dir/checksum_03",644); + assert!(csum3_perms.is_ok()); // Delete the test directory at the end of the test if let Err(err) = fs::remove_dir_all(&output_directory) { @@ -157,13 +93,33 @@ use extractors::{ // 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); + let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap(); + assert_eq!(checksum_02, true); + + let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap(); + assert_eq!(checksum_03, true); + + // Check Permissions match original 644 compression perms + let tf1_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf1_perms.is_ok()); + + let tf2_perms = check_permissions("test_dir/testfile_02",644); + assert!(tf2_perms.is_ok()); + + let tf3_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf3_perms.is_ok()); + + let csum1_perms = check_permissions("test_dir/checksum_01",644); + assert!(csum1_perms.is_ok()); + + let csum2_perms = check_permissions("test_dir/checksum_02",644); + assert!(csum2_perms.is_ok()); + + let csum3_perms = check_permissions("test_dir/checksum_03",644); + assert!(csum3_perms.is_ok()); + // 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); @@ -180,12 +136,32 @@ use extractors::{ // 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); + + let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap(); assert_eq!(checksum_02, true); + + let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap(); assert_eq!(checksum_03, true); + + // Check Permissions match original 644 compression perms + let tf1_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf1_perms.is_ok()); + + let tf2_perms = check_permissions("test_dir/testfile_02",644); + assert!(tf2_perms.is_ok()); + + let tf3_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf3_perms.is_ok()); + + let csum1_perms = check_permissions("test_dir/checksum_01",644); + assert!(csum1_perms.is_ok()); + + let csum2_perms = check_permissions("test_dir/checksum_02",644); + assert!(csum2_perms.is_ok()); + + let csum3_perms = check_permissions("test_dir/checksum_03",644); + assert!(csum3_perms.is_ok()); // Delete the test directory at the end of the test if let Err(err) = fs::remove_dir_all(&output_directory) { @@ -266,13 +242,33 @@ use extractors::{ // 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); + + let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap(); assert_eq!(checksum_02, true); + + let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap(); assert_eq!(checksum_03, true); + // Check Permissions match original 644 compression perms + let tf1_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf1_perms.is_ok()); + + let tf2_perms = check_permissions("test_dir/testfile_02",644); + assert!(tf2_perms.is_ok()); + + let tf3_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf3_perms.is_ok()); + + let csum1_perms = check_permissions("test_dir/checksum_01",644); + assert!(csum1_perms.is_ok()); + + let csum2_perms = check_permissions("test_dir/checksum_02",644); + assert!(csum2_perms.is_ok()); + + let csum3_perms = check_permissions("test_dir/checksum_03",644); + assert!(csum3_perms.is_ok()); + // 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); @@ -284,19 +280,38 @@ use extractors::{ fn test_extract_tbz2() { let input_path = Path::new("src/test_data/test.tbz2"); let output_directory = create_temp_dir(); - //get the text in checksum_01,checksum_02,checksum_03 and compare to the hashes of testfile_01 testfile_02 and testfile_03 - //assert equality + let result = extract_tbz2(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); + + let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap(); assert_eq!(checksum_02, true); + + let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap(); assert_eq!(checksum_03, true); + + // Check Permissions match original 644 compression perms + let tf1_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf1_perms.is_ok()); + + let tf2_perms = check_permissions("test_dir/testfile_02",644); + assert!(tf2_perms.is_ok()); + + let tf3_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf3_perms.is_ok()); + + let csum1_perms = check_permissions("test_dir/checksum_01",644); + assert!(csum1_perms.is_ok()); + + let csum2_perms = check_permissions("test_dir/checksum_02",644); + assert!(csum2_perms.is_ok()); + + let csum3_perms = check_permissions("test_dir/checksum_03",644); + assert!(csum3_perms.is_ok()); // Delete the test directory at the end of the test if let Err(err) = fs::remove_dir_all(&output_directory) { @@ -309,20 +324,38 @@ use extractors::{ fn test_extract_tgz() { let input_path = Path::new("src/test_data/test.tgz"); let output_directory = create_temp_dir(); - //get the text in checksum_01,checksum_02,checksum_03 and compare to the hashes of testfile_01 testfile_02 and testfile_03 - //assert equality let result = extract_tgz(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); + + let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap(); assert_eq!(checksum_02, true); + + let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap(); assert_eq!(checksum_03, true); + // Check Permissions match original 644 compression perms + let tf1_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf1_perms.is_ok()); + + let tf2_perms = check_permissions("test_dir/testfile_02",644); + assert!(tf2_perms.is_ok()); + + let tf3_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf3_perms.is_ok()); + + let csum1_perms = check_permissions("test_dir/checksum_01",644); + assert!(csum1_perms.is_ok()); + + let csum2_perms = check_permissions("test_dir/checksum_02",644); + assert!(csum2_perms.is_ok()); + + let csum3_perms = check_permissions("test_dir/checksum_03",644); + assert!(csum3_perms.is_ok()); + // 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); @@ -334,20 +367,38 @@ use extractors::{ fn test_extract_txz() { let input_path = Path::new("src/test_data/test.txz"); let output_directory = create_temp_dir(); - //get the text in checksum_01,checksum_02,checksum_03 and compare to the hashes of testfile_01 testfile_02 and testfile_03 - //assert equality let result = extract_txz(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); + + let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap(); assert_eq!(checksum_02, true); + + let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap(); assert_eq!(checksum_03, true); + // Check Permissions match original 644 compression perms + let tf1_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf1_perms.is_ok()); + + let tf2_perms = check_permissions("test_dir/testfile_02",644); + assert!(tf2_perms.is_ok()); + + let tf3_perms = check_permissions("test_dir/testfile_01",644); + assert!(tf3_perms.is_ok()); + + let csum1_perms = check_permissions("test_dir/checksum_01",644); + assert!(csum1_perms.is_ok()); + + let csum2_perms = check_permissions("test_dir/checksum_02",644); + assert!(csum2_perms.is_ok()); + + let csum3_perms = check_permissions("test_dir/checksum_03",644); + assert!(csum3_perms.is_ok()); + // 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); @@ -429,4 +480,12 @@ use extractors::{ flags } + fn check_permissions(filepath: &str, perms: u32) -> Result { + let file = File::open(filepath)?; + let metadata = file.metadata()?; + let permissions = metadata.permissions(); + let mode = permissions.mode(); + let chmod = mode_to_chmod(mode); + Ok(chmod == perms) + } }