added perm validation for all non singlefile formats
This commit is contained in:
parent
0edd8761fe
commit
2f647bdb8e
1 changed files with 165 additions and 106 deletions
267
src/lib/lib.rs
267
src/lib/lib.rs
|
|
@ -43,7 +43,6 @@ use extractors::{
|
||||||
fn test_extract_zip() {
|
fn test_extract_zip() {
|
||||||
let input_path = Path::new("src/test_data/test.zip");
|
let input_path = Path::new("src/test_data/test.zip");
|
||||||
let output_directory = create_temp_dir();
|
let output_directory = create_temp_dir();
|
||||||
let perms = 644;
|
|
||||||
|
|
||||||
// Extract the zip file
|
// Extract the zip file
|
||||||
let result = extract_zip(input_path, &output_directory);
|
let result = extract_zip(input_path, &output_directory);
|
||||||
|
|
@ -51,95 +50,32 @@ use extractors::{
|
||||||
|
|
||||||
// Check checksums and assert equality
|
// Check checksums and assert equality
|
||||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").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_01, true);
|
||||||
|
|
||||||
|
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||||
assert_eq!(checksum_02, true);
|
assert_eq!(checksum_02, true);
|
||||||
|
|
||||||
|
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||||
assert_eq!(checksum_03, true);
|
assert_eq!(checksum_03, true);
|
||||||
|
|
||||||
// Check Permissions match original 644 compression perms
|
// 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 tf2_perms = check_permissions("test_dir/testfile_02",644);
|
||||||
let tf1_metadata = tf1.metadata();
|
assert!(tf2_perms.is_ok());
|
||||||
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 tf3_perms = check_permissions("test_dir/testfile_01",644);
|
||||||
let tf2_metadata = tf2.metadata();
|
assert!(tf3_perms.is_ok());
|
||||||
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 csum1_perms = check_permissions("test_dir/checksum_01",644);
|
||||||
let tf3_metadata = tf3.metadata();
|
assert!(csum1_perms.is_ok());
|
||||||
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 csum1 = File::open("test_dir/checksum_01").expect("Failed to open test file");
|
let csum2_perms = check_permissions("test_dir/checksum_02",644);
|
||||||
let csum1_metadata = csum1.metadata();
|
assert!(csum2_perms.is_ok());
|
||||||
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 csum2 = File::open("test_dir/checksum_02").expect("Failed to open test file");
|
let csum3_perms = check_permissions("test_dir/checksum_03",644);
|
||||||
let csum2_metadata = csum2.metadata();
|
assert!(csum3_perms.is_ok());
|
||||||
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 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 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);
|
|
||||||
|
|
||||||
// Delete the test directory at the end of the test
|
// Delete the test directory at the end of the test
|
||||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||||
|
|
@ -157,13 +93,33 @@ use extractors::{
|
||||||
|
|
||||||
// Check checksums and assert equality
|
// Check checksums and assert equality
|
||||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").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_01, true);
|
||||||
|
|
||||||
|
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||||
assert_eq!(checksum_02, true);
|
assert_eq!(checksum_02, true);
|
||||||
|
|
||||||
|
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||||
assert_eq!(checksum_03, true);
|
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
|
// Delete the test directory at the end of the test
|
||||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||||
eprintln!("Failed to delete test directory: {:?}", err);
|
eprintln!("Failed to delete test directory: {:?}", err);
|
||||||
|
|
@ -180,13 +136,33 @@ use extractors::{
|
||||||
|
|
||||||
// Check checksums and assert equality
|
// Check checksums and assert equality
|
||||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").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_01, true);
|
||||||
|
|
||||||
|
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||||
assert_eq!(checksum_02, true);
|
assert_eq!(checksum_02, true);
|
||||||
|
|
||||||
|
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||||
assert_eq!(checksum_03, true);
|
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
|
// Delete the test directory at the end of the test
|
||||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||||
eprintln!("Failed to delete test directory: {:?}", err);
|
eprintln!("Failed to delete test directory: {:?}", err);
|
||||||
|
|
@ -266,13 +242,33 @@ use extractors::{
|
||||||
|
|
||||||
// Check checksums and assert equality
|
// Check checksums and assert equality
|
||||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").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_01, true);
|
||||||
|
|
||||||
|
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||||
assert_eq!(checksum_02, true);
|
assert_eq!(checksum_02, true);
|
||||||
|
|
||||||
|
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||||
assert_eq!(checksum_03, true);
|
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
|
// Delete the test directory at the end of the test
|
||||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||||
eprintln!("Failed to delete test directory: {:?}", err);
|
eprintln!("Failed to delete test directory: {:?}", err);
|
||||||
|
|
@ -284,20 +280,39 @@ use extractors::{
|
||||||
fn test_extract_tbz2() {
|
fn test_extract_tbz2() {
|
||||||
let input_path = Path::new("src/test_data/test.tbz2");
|
let input_path = Path::new("src/test_data/test.tbz2");
|
||||||
let output_directory = create_temp_dir();
|
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);
|
let result = extract_tbz2(input_path, &output_directory);
|
||||||
assert!(result.is_ok());
|
assert!(result.is_ok());
|
||||||
|
|
||||||
// Check checksums and assert equality
|
// Check checksums and assert equality
|
||||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").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_01, true);
|
||||||
|
|
||||||
|
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||||
assert_eq!(checksum_02, true);
|
assert_eq!(checksum_02, true);
|
||||||
|
|
||||||
|
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||||
assert_eq!(checksum_03, true);
|
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
|
// Delete the test directory at the end of the test
|
||||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||||
eprintln!("Failed to delete test directory: {:?}", err);
|
eprintln!("Failed to delete test directory: {:?}", err);
|
||||||
|
|
@ -309,20 +324,38 @@ use extractors::{
|
||||||
fn test_extract_tgz() {
|
fn test_extract_tgz() {
|
||||||
let input_path = Path::new("src/test_data/test.tgz");
|
let input_path = Path::new("src/test_data/test.tgz");
|
||||||
let output_directory = create_temp_dir();
|
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);
|
let result = extract_tgz(input_path, &output_directory);
|
||||||
assert!(result.is_ok());
|
assert!(result.is_ok());
|
||||||
|
|
||||||
// Check checksums and assert equality
|
// Check checksums and assert equality
|
||||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").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_01, true);
|
||||||
|
|
||||||
|
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||||
assert_eq!(checksum_02, true);
|
assert_eq!(checksum_02, true);
|
||||||
|
|
||||||
|
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||||
assert_eq!(checksum_03, true);
|
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
|
// Delete the test directory at the end of the test
|
||||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||||
eprintln!("Failed to delete test directory: {:?}", err);
|
eprintln!("Failed to delete test directory: {:?}", err);
|
||||||
|
|
@ -334,20 +367,38 @@ use extractors::{
|
||||||
fn test_extract_txz() {
|
fn test_extract_txz() {
|
||||||
let input_path = Path::new("src/test_data/test.txz");
|
let input_path = Path::new("src/test_data/test.txz");
|
||||||
let output_directory = create_temp_dir();
|
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);
|
let result = extract_txz(input_path, &output_directory);
|
||||||
assert!(result.is_ok());
|
assert!(result.is_ok());
|
||||||
|
|
||||||
// Check checksums and assert equality
|
// Check checksums and assert equality
|
||||||
let checksum_01 = verify_checksum("test_dir/checksum_01", "test_dir/testfile_01").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_01, true);
|
||||||
|
|
||||||
|
let checksum_02 = verify_checksum("test_dir/checksum_02", "test_dir/testfile_02").unwrap();
|
||||||
assert_eq!(checksum_02, true);
|
assert_eq!(checksum_02, true);
|
||||||
|
|
||||||
|
let checksum_03 = verify_checksum("test_dir/checksum_03", "test_dir/testfile_03").unwrap();
|
||||||
assert_eq!(checksum_03, true);
|
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
|
// Delete the test directory at the end of the test
|
||||||
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
if let Err(err) = fs::remove_dir_all(&output_directory) {
|
||||||
eprintln!("Failed to delete test directory: {:?}", err);
|
eprintln!("Failed to delete test directory: {:?}", err);
|
||||||
|
|
@ -429,4 +480,12 @@ use extractors::{
|
||||||
|
|
||||||
flags
|
flags
|
||||||
}
|
}
|
||||||
|
fn check_permissions(filepath: &str, perms: u32) -> Result<bool, std::io::Error> {
|
||||||
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue