|
|
|
|
@ -103,26 +103,22 @@ mod tests {
|
|
|
|
|
let mut builder = TimeReaderBuilder::default(); |
|
|
|
|
builder.regex(Regex::new("f.o").unwrap()); |
|
|
|
|
let reader = builder.build().unwrap(); |
|
|
|
|
match NamedTempFile::new() { |
|
|
|
|
Ok(ref mut file) => { |
|
|
|
|
writeln!(file, "[2021-04-15T06:25:31+00:00] foobar").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:26:31+00:00] bar").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:27:31+00:00] foobar").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:28:31+00:00] foobar").unwrap(); |
|
|
|
|
writeln!(file, "none").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 3); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[0], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:25:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[2], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:28:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
Err(_) => assert!(false, "Could not create temp file"), |
|
|
|
|
} |
|
|
|
|
let mut file = NamedTempFile::new().unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:25:31+00:00] foobar").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:26:31+00:00] bar").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:27:31+00:00] foobar").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:28:31+00:00] foobar").unwrap(); |
|
|
|
|
writeln!(file, "none").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 3); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[0], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:25:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[2], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:28:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
@ -130,26 +126,22 @@ mod tests {
|
|
|
|
|
let mut builder = TimeReaderBuilder::default(); |
|
|
|
|
builder.ts_format(String::from("%Y_%m_%d %H:%M")); |
|
|
|
|
let reader = builder.build().unwrap(); |
|
|
|
|
match NamedTempFile::new() { |
|
|
|
|
Ok(ref mut file) => { |
|
|
|
|
writeln!(file, "_2021_04_15 06:25] foobar").unwrap(); |
|
|
|
|
writeln!(file, "_2021_04_15 06:26] bar").unwrap(); |
|
|
|
|
writeln!(file, "_2021_04_15 06:27] foobar").unwrap(); |
|
|
|
|
writeln!(file, "_2021_04_15 06:28] foobar").unwrap(); |
|
|
|
|
writeln!(file, "none").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 4); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[0], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:25:00+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[3], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:28:00+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
Err(_) => assert!(false, "Could not create temp file"), |
|
|
|
|
} |
|
|
|
|
let mut file = NamedTempFile::new().unwrap(); |
|
|
|
|
writeln!(file, "_2021_04_15 06:25] foobar").unwrap(); |
|
|
|
|
writeln!(file, "_2021_04_15 06:26] bar").unwrap(); |
|
|
|
|
writeln!(file, "_2021_04_15 06:27] foobar").unwrap(); |
|
|
|
|
writeln!(file, "_2021_04_15 06:28] foobar").unwrap(); |
|
|
|
|
writeln!(file, "none").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 4); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[0], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:25:00+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[3], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:28:00+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
@ -157,25 +149,21 @@ mod tests {
|
|
|
|
|
let mut builder = TimeReaderBuilder::default(); |
|
|
|
|
builder.duration(Duration::seconds(90)); |
|
|
|
|
let reader = builder.build().unwrap(); |
|
|
|
|
match NamedTempFile::new() { |
|
|
|
|
Ok(ref mut file) => { |
|
|
|
|
writeln!(file, "[2021-04-15T06:25:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:26:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:27:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:28:31+00:00] foo").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 2); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[0], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:25:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[1], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:26:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
Err(_) => assert!(false, "Could not create temp file"), |
|
|
|
|
} |
|
|
|
|
let mut file = NamedTempFile::new().unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:25:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:26:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:27:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:28:31+00:00] foo").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 2); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[0], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:25:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[1], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:26:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
@ -183,25 +171,49 @@ mod tests {
|
|
|
|
|
let mut builder = TimeReaderBuilder::default(); |
|
|
|
|
builder.duration(Duration::seconds(90)).early_stop(true); |
|
|
|
|
let reader = builder.build().unwrap(); |
|
|
|
|
match NamedTempFile::new() { |
|
|
|
|
Ok(ref mut file) => { |
|
|
|
|
writeln!(file, "[2021-04-15T06:25:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:26:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:27:31+00:00] foo").unwrap(); |
|
|
|
|
// This date goes backwards
|
|
|
|
|
writeln!(file, "[2021-04-15T06:25:32+00:00] foo").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 2); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[0], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:25:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[1], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:26:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
Err(_) => assert!(false, "Could not create temp file"), |
|
|
|
|
} |
|
|
|
|
let mut file = NamedTempFile::new().unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:25:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:26:31+00:00] foo").unwrap(); |
|
|
|
|
writeln!(file, "[2021-04-15T06:27:31+00:00] foo").unwrap(); |
|
|
|
|
// This date goes backwards
|
|
|
|
|
writeln!(file, "[2021-04-15T06:25:32+00:00] foo").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 2); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[0], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:25:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
assert_eq!( |
|
|
|
|
ts[1], |
|
|
|
|
DateTime::parse_from_rfc3339("2021-04-15T06:26:31+00:00").unwrap() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
fn time_reader_with_bad_format() { |
|
|
|
|
let mut builder = TimeReaderBuilder::default(); |
|
|
|
|
builder.ts_format(String::from("%Y_%zzzz")); |
|
|
|
|
let reader = builder.build().unwrap(); |
|
|
|
|
let mut file = NamedTempFile::new().unwrap(); |
|
|
|
|
writeln!(file, "_2021_04_15 06:25] foobar").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
fn time_empty_file() { |
|
|
|
|
let reader = TimeReaderBuilder::default().build().unwrap(); |
|
|
|
|
let file = NamedTempFile::new().unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
fn time_reader_with_garbage() { |
|
|
|
|
let reader = TimeReaderBuilder::default().build().unwrap(); |
|
|
|
|
let mut file = NamedTempFile::new().unwrap(); |
|
|
|
|
writeln!(file, "garbage").unwrap(); |
|
|
|
|
let ts = reader.read(file.path().to_str().unwrap()); |
|
|
|
|
assert_eq!(ts.len(), 0); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|