Skip to content

Commit

Permalink
test(time): add some test
Browse files Browse the repository at this point in the history
  • Loading branch information
Dirreke committed Dec 17, 2023
1 parent f62c014 commit 9c8af6a
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/append/rolling_file/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -390,8 +390,8 @@ appenders:
path: {0}/foo.log
policy:
trigger:
kind: size
limit: 1024
kind: time
limit: 2 minutes
roller:
kind: delete
bar:
Expand Down
14 changes: 6 additions & 8 deletions src/append/rolling_file/policy/compound/trigger/time.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,9 +152,12 @@ impl TimeTrigger {
let weekday = time.weekday();
let hour = time.hour();
let min = time.minute();
let sec = time.second();

let time_new = match limit {
TimeTriggerLimit::Second(_) => time,
TimeTriggerLimit::Second(_) => Local
.with_ymd_and_hms(year, month, day, hour, min, sec)
.unwrap(),
TimeTriggerLimit::Minute(_) => Local
.with_ymd_and_hms(year, month, day, hour, min, 0)
.unwrap(),
Expand Down Expand Up @@ -259,15 +262,10 @@ mod test {
path: file.path(),
len: 0,
};
let trigger = TimeTrigger::new(TimeTriggerLimit::Second(10));
let result = trigger.trigger(&logfile).unwrap();
assert_eq!(false, result);
std::thread::sleep(std::time::Duration::from_secs(12));
let result = trigger.trigger(&logfile).unwrap();
assert_eq!(true, result);
let trigger = TimeTrigger::new(TimeTriggerLimit::Second(2));
let result = trigger.trigger(&logfile).unwrap();
assert_eq!(false, result);
std::thread::sleep(std::time::Duration::from_secs(12));
std::thread::sleep(std::time::Duration::from_secs(3));
let result = trigger.trigger(&logfile).unwrap();
assert_eq!(true, result);
}
Expand Down
27 changes: 27 additions & 0 deletions src/append/rolling_file/policy/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,30 @@ impl Deserializable for dyn Policy {
"policy"
}
}

#[cfg(test)]
mod test {
use super::{
compound::{
roll::delete::DeleteRoller,
trigger::{
size::SizeTrigger,
time::{TimeTrigger, TimeTriggerLimit},
},
CompoundPolicy,
},
*,
};

#[test]
fn pre_process() {
let trigger = TimeTrigger::new(TimeTriggerLimit::Month(1));
let roller = DeleteRoller::new();
let policy = CompoundPolicy::new(Box::new(trigger), Box::new(roller));
assert!(policy.is_pre_process());

let trigger = SizeTrigger::new(1024);
let policy = CompoundPolicy::new(Box::new(trigger), Box::new(roller));
assert!(!policy.is_pre_process());
}
}

0 comments on commit 9c8af6a

Please sign in to comment.