Skip to content

Commit d8f1309

Browse files
committed
tests: fix tests as root
1 parent 709a1eb commit d8f1309

File tree

4 files changed

+118
-12
lines changed

4 files changed

+118
-12
lines changed

rar-common/src/database/actor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -897,11 +897,11 @@ mod tests {
897897

898898
let groups = SGroups::from(vec![
899899
SGroupType::from(0),
900-
SGroupType::from(getuid().as_raw()),
900+
SGroupType::from(getuid().as_raw() + 1),
901901
]);
902902
let other_groups = SGroups::from(vec![
903903
SGroupType::from(0),
904-
SGroupType::from(getuid().as_raw()),
904+
SGroupType::from(getuid().as_raw() + 1),
905905
]);
906906
assert!(groups.fetch_eq(&other_groups));
907907
let other_groups = SGroups::from(vec![SGroupType::from(0), SGroupType::from("test2")]);

rar-common/src/lib.rs

Lines changed: 90 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -432,10 +432,36 @@ mod tests {
432432

433433
use super::*;
434434

435+
pub struct Defer<F: FnOnce()>(Option<F>);
436+
437+
impl<F: FnOnce()> Defer<F> {
438+
pub fn new(f: F) -> Self {
439+
Defer(Some(f))
440+
}
441+
}
442+
443+
impl<F: FnOnce()> Drop for Defer<F> {
444+
fn drop(&mut self) {
445+
if let Some(f) = self.0.take() {
446+
f();
447+
}
448+
}
449+
}
450+
451+
pub fn defer<F: FnOnce()>(f: F) -> Defer<F> {
452+
Defer::new(f)
453+
}
454+
435455
#[test]
436456
fn test_get_settings_same_file() {
437457
// Create a test JSON file
438-
let value = "test_get_settings_same_file.json";
458+
let value = "/tmp/test_get_settings_same_file.json";
459+
let _cleanup = defer(|| {
460+
let filename = PathBuf::from(value).canonicalize().unwrap_or(value.into());
461+
if std::fs::remove_file(&filename).is_err() {
462+
debug!("Failed to delete the file: {}", filename.display());
463+
}
464+
});
439465
let config = Versioning::new(Rc::new(RefCell::new(
440466
FullSettingsFile::builder()
441467
.storage(
@@ -481,8 +507,24 @@ mod tests {
481507
#[test]
482508
fn test_get_settings_different_file() {
483509
// Create a test JSON file
484-
let external_file = "test_get_settings_different_file_external.json";
485-
let test_file = "test_get_settings_different_file.json";
510+
let external_file = "/tmp/test_get_settings_different_file_external.json";
511+
let test_file = "/tmp/test_get_settings_different_file.json";
512+
let _cleanup = defer(|| {
513+
let filename = PathBuf::from(test_file)
514+
.canonicalize()
515+
.unwrap_or(test_file.into());
516+
if std::fs::remove_file(&test_file).is_err() {
517+
debug!("Failed to delete the file: {}", filename.display());
518+
}
519+
});
520+
let _cleanup2 = defer(|| {
521+
let filename = PathBuf::from(external_file)
522+
.canonicalize()
523+
.unwrap_or(external_file.into());
524+
if std::fs::remove_file(&external_file).is_err() {
525+
debug!("Failed to delete the file: {}", filename.display());
526+
}
527+
});
486528
let settings_config = Versioning::new(Rc::new(RefCell::new(
487529
FullSettingsFile::builder()
488530
.storage(
@@ -533,7 +575,15 @@ mod tests {
533575

534576
#[test]
535577
fn test_save_settings_same_file() {
536-
let test_file = "test_save_settings_same_file.json";
578+
let test_file = "/tmp/test_save_settings_same_file.json";
579+
let _cleanup = defer(|| {
580+
let filename = PathBuf::from(test_file)
581+
.canonicalize()
582+
.unwrap_or(test_file.into());
583+
if std::fs::remove_file(&filename).is_err() {
584+
debug!("Failed to delete the file: {}", filename.display());
585+
}
586+
});
537587
// Create a test JSON file
538588
let config = Rc::new(RefCell::new(
539589
FullSettingsFile::builder()
@@ -579,8 +629,24 @@ mod tests {
579629

580630
#[test]
581631
fn test_save_settings_different_file() {
582-
let external_file = "test_save_settings_different_file_external.json";
583-
let test_file = "test_save_settings_different_file.json";
632+
let external_file = "/tmp/test_save_settings_different_file_external.json";
633+
let test_file = "/tmp/test_save_settings_different_file.json";
634+
let _cleanup = defer(|| {
635+
let filename = PathBuf::from(test_file)
636+
.canonicalize()
637+
.unwrap_or(test_file.into());
638+
if std::fs::remove_file(&filename).is_err() {
639+
debug!("Failed to delete the file: {}", filename.display());
640+
}
641+
});
642+
let _cleanup2 = defer(|| {
643+
let filename = PathBuf::from(external_file)
644+
.canonicalize()
645+
.unwrap_or(external_file.into());
646+
if std::fs::remove_file(&filename).is_err() {
647+
debug!("Failed to delete the file: {}", filename.display());
648+
}
649+
});
584650
let sconfig = SConfig::builder()
585651
.role(
586652
SRole::builder("test_role")
@@ -640,8 +706,24 @@ mod tests {
640706

641707
#[test]
642708
fn test_save_cbor_format() {
643-
let external_file = "test_save_cbor_format.bin";
644-
let test_file = "test_save_cbor_format.json";
709+
let external_file = "/tmp/test_save_cbor_format.bin";
710+
let test_file = "/tmp/test_save_cbor_format.json";
711+
let _cleanup = defer(|| {
712+
let filename = PathBuf::from(test_file)
713+
.canonicalize()
714+
.unwrap_or(test_file.into());
715+
if std::fs::remove_file(&filename).is_err() {
716+
debug!("Failed to delete the file: {}", filename.display());
717+
}
718+
});
719+
let _cleanup2 = defer(|| {
720+
let filename = PathBuf::from(external_file)
721+
.canonicalize()
722+
.unwrap_or(external_file.into());
723+
if std::fs::remove_file(&filename).is_err() {
724+
debug!("Failed to delete the file: {}", filename.display());
725+
}
726+
});
645727
let sconfig = SConfig::builder()
646728
.role(
647729
SRole::builder("test_role")

rar-common/src/util.rs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,26 @@ mod test {
395395

396396
use super::*;
397397

398+
pub struct Defer<F: FnOnce()>(Option<F>);
399+
400+
impl<F: FnOnce()> Defer<F> {
401+
pub fn new(f: F) -> Self {
402+
Defer(Some(f))
403+
}
404+
}
405+
406+
impl<F: FnOnce()> Drop for Defer<F> {
407+
fn drop(&mut self) {
408+
if let Some(f) = self.0.take() {
409+
f();
410+
}
411+
}
412+
}
413+
414+
pub fn defer<F: FnOnce()>(f: F) -> Defer<F> {
415+
Defer::new(f)
416+
}
417+
398418
#[test]
399419
fn test_remove_outer_quotes() {
400420
assert_eq!(remove_outer_quotes("'test'"), "test");
@@ -469,7 +489,11 @@ mod test {
469489

470490
#[test]
471491
fn test_toggle_lock_config() {
472-
let path = PathBuf::from("/tmp/test");
492+
let path = PathBuf::from("/tmp/rar_test_lock_config.lock");
493+
let _defer = defer(|| {
494+
// Clean up the test file after the test is done
495+
let _ = fs::remove_file(&path);
496+
});
473497
let file = File::create(&path).expect("Failed to create file");
474498
let res = toggle_lock_config(&path, ImmutableLock::Set);
475499
let status = fs::read_to_string("/proc/self/status").unwrap();

src/sr/finder/cmd.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ fn evaluate_regex_cmd(
7676
#[cfg(not(feature = "pcre2"))]
7777
fn evaluate_regex_cmd(
7878
_role_args: &str,
79-
_commandline: String,
79+
_commandline: &str,
8080
) -> Result<CmdMin, Box<dyn std::error::Error>> {
8181
Ok(CmdMin::empty())
8282
}

0 commit comments

Comments
 (0)