mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
stat: move unit tests to stat.rs instead of test_stat.rs
This commit is contained in:
parent
7e5b6400e3
commit
b0224e8145
2 changed files with 112 additions and 115 deletions
|
@ -1082,3 +1082,115 @@ pub fn uu_app() -> Command {
|
||||||
.value_hint(clap::ValueHint::FilePath),
|
.value_hint(clap::ValueHint::FilePath),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::{group_num, Flags, ScanUtil, Stater, Token};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_scanners() {
|
||||||
|
assert_eq!(Some((-5, 2)), "-5zxc".scan_num::<i32>());
|
||||||
|
assert_eq!(Some((51, 2)), "51zxc".scan_num::<u32>());
|
||||||
|
assert_eq!(Some((192, 4)), "+192zxc".scan_num::<i32>());
|
||||||
|
assert_eq!(None, "z192zxc".scan_num::<i32>());
|
||||||
|
|
||||||
|
assert_eq!(Some(('a', 3)), "141zxc".scan_char(8));
|
||||||
|
assert_eq!(Some(('\n', 2)), "12qzxc".scan_char(8)); // spell-checker:disable-line
|
||||||
|
assert_eq!(Some(('\r', 1)), "dqzxc".scan_char(16)); // spell-checker:disable-line
|
||||||
|
assert_eq!(None, "z2qzxc".scan_char(8)); // spell-checker:disable-line
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_group_num() {
|
||||||
|
assert_eq!("12,379,821,234", group_num("12379821234"));
|
||||||
|
assert_eq!("21,234", group_num("21234"));
|
||||||
|
assert_eq!("821,234", group_num("821234"));
|
||||||
|
assert_eq!("1,821,234", group_num("1821234"));
|
||||||
|
assert_eq!("1,234", group_num("1234"));
|
||||||
|
assert_eq!("234", group_num("234"));
|
||||||
|
assert_eq!("24", group_num("24"));
|
||||||
|
assert_eq!("4", group_num("4"));
|
||||||
|
assert_eq!("", group_num(""));
|
||||||
|
assert_eq!("-5", group_num("-5"));
|
||||||
|
assert_eq!("-1,234", group_num("-1234"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[should_panic]
|
||||||
|
fn test_group_num_panic_if_invalid_numeric_characters() {
|
||||||
|
group_num("³³³³³");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn normal_format() {
|
||||||
|
let s = "%'010.2ac%-#5.w\n";
|
||||||
|
let expected = vec![
|
||||||
|
Token::Directive {
|
||||||
|
flag: Flags {
|
||||||
|
group: true,
|
||||||
|
zero: true,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
width: 10,
|
||||||
|
precision: 2,
|
||||||
|
format: 'a',
|
||||||
|
},
|
||||||
|
Token::Char('c'),
|
||||||
|
Token::Directive {
|
||||||
|
flag: Flags {
|
||||||
|
left: true,
|
||||||
|
alter: true,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
width: 5,
|
||||||
|
precision: 0,
|
||||||
|
format: 'w',
|
||||||
|
},
|
||||||
|
Token::Char('\n'),
|
||||||
|
];
|
||||||
|
assert_eq!(&expected, &Stater::generate_tokens(s, false).unwrap());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn printf_format() {
|
||||||
|
let s = "%-# 15a\\t\\r\\\"\\\\\\a\\b\\e\\f\\v%+020.-23w\\x12\\167\\132\\112\\n";
|
||||||
|
let expected = vec![
|
||||||
|
Token::Directive {
|
||||||
|
flag: Flags {
|
||||||
|
left: true,
|
||||||
|
alter: true,
|
||||||
|
space: true,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
width: 15,
|
||||||
|
precision: -1,
|
||||||
|
format: 'a',
|
||||||
|
},
|
||||||
|
Token::Char('\t'),
|
||||||
|
Token::Char('\r'),
|
||||||
|
Token::Char('"'),
|
||||||
|
Token::Char('\\'),
|
||||||
|
Token::Char('\x07'),
|
||||||
|
Token::Char('\x08'),
|
||||||
|
Token::Char('\x1B'),
|
||||||
|
Token::Char('\x0C'),
|
||||||
|
Token::Char('\x0B'),
|
||||||
|
Token::Directive {
|
||||||
|
flag: Flags {
|
||||||
|
sign: true,
|
||||||
|
zero: true,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
width: 20,
|
||||||
|
precision: -1,
|
||||||
|
format: 'w',
|
||||||
|
},
|
||||||
|
Token::Char('\x12'),
|
||||||
|
Token::Char('w'),
|
||||||
|
Token::Char('Z'),
|
||||||
|
Token::Char('J'),
|
||||||
|
Token::Char('\n'),
|
||||||
|
];
|
||||||
|
assert_eq!(&expected, &Stater::generate_tokens(s, true).unwrap());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -7,126 +7,11 @@ extern crate regex;
|
||||||
|
|
||||||
use crate::common::util::*;
|
use crate::common::util::*;
|
||||||
|
|
||||||
extern crate stat;
|
|
||||||
pub use self::stat::*;
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_invalid_arg() {
|
fn test_invalid_arg() {
|
||||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_scanners() {
|
|
||||||
assert_eq!(Some((-5, 2)), "-5zxc".scan_num::<i32>());
|
|
||||||
assert_eq!(Some((51, 2)), "51zxc".scan_num::<u32>());
|
|
||||||
assert_eq!(Some((192, 4)), "+192zxc".scan_num::<i32>());
|
|
||||||
assert_eq!(None, "z192zxc".scan_num::<i32>());
|
|
||||||
|
|
||||||
assert_eq!(Some(('a', 3)), "141zxc".scan_char(8));
|
|
||||||
assert_eq!(Some(('\n', 2)), "12qzxc".scan_char(8)); // spell-checker:disable-line
|
|
||||||
assert_eq!(Some(('\r', 1)), "dqzxc".scan_char(16)); // spell-checker:disable-line
|
|
||||||
assert_eq!(None, "z2qzxc".scan_char(8)); // spell-checker:disable-line
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_group_num() {
|
|
||||||
assert_eq!("12,379,821,234", group_num("12379821234"));
|
|
||||||
assert_eq!("21,234", group_num("21234"));
|
|
||||||
assert_eq!("821,234", group_num("821234"));
|
|
||||||
assert_eq!("1,821,234", group_num("1821234"));
|
|
||||||
assert_eq!("1,234", group_num("1234"));
|
|
||||||
assert_eq!("234", group_num("234"));
|
|
||||||
assert_eq!("24", group_num("24"));
|
|
||||||
assert_eq!("4", group_num("4"));
|
|
||||||
assert_eq!("", group_num(""));
|
|
||||||
assert_eq!("-5", group_num("-5"));
|
|
||||||
assert_eq!("-1,234", group_num("-1234"));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
#[should_panic]
|
|
||||||
fn test_group_num_panic_if_invalid_numeric_characters() {
|
|
||||||
group_num("³³³³³");
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod test_generate_tokens {
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn normal_format() {
|
|
||||||
let s = "%'010.2ac%-#5.w\n";
|
|
||||||
let expected = vec![
|
|
||||||
Token::Directive {
|
|
||||||
flag: Flags {
|
|
||||||
group: true,
|
|
||||||
zero: true,
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
width: 10,
|
|
||||||
precision: 2,
|
|
||||||
format: 'a',
|
|
||||||
},
|
|
||||||
Token::Char('c'),
|
|
||||||
Token::Directive {
|
|
||||||
flag: Flags {
|
|
||||||
left: true,
|
|
||||||
alter: true,
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
width: 5,
|
|
||||||
precision: 0,
|
|
||||||
format: 'w',
|
|
||||||
},
|
|
||||||
Token::Char('\n'),
|
|
||||||
];
|
|
||||||
assert_eq!(&expected, &Stater::generate_tokens(s, false).unwrap());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn printf_format() {
|
|
||||||
let s = "%-# 15a\\t\\r\\\"\\\\\\a\\b\\e\\f\\v%+020.-23w\\x12\\167\\132\\112\\n";
|
|
||||||
let expected = vec![
|
|
||||||
Token::Directive {
|
|
||||||
flag: Flags {
|
|
||||||
left: true,
|
|
||||||
alter: true,
|
|
||||||
space: true,
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
width: 15,
|
|
||||||
precision: -1,
|
|
||||||
format: 'a',
|
|
||||||
},
|
|
||||||
Token::Char('\t'),
|
|
||||||
Token::Char('\r'),
|
|
||||||
Token::Char('"'),
|
|
||||||
Token::Char('\\'),
|
|
||||||
Token::Char('\x07'),
|
|
||||||
Token::Char('\x08'),
|
|
||||||
Token::Char('\x1B'),
|
|
||||||
Token::Char('\x0C'),
|
|
||||||
Token::Char('\x0B'),
|
|
||||||
Token::Directive {
|
|
||||||
flag: Flags {
|
|
||||||
sign: true,
|
|
||||||
zero: true,
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
width: 20,
|
|
||||||
precision: -1,
|
|
||||||
format: 'w',
|
|
||||||
},
|
|
||||||
Token::Char('\x12'),
|
|
||||||
Token::Char('w'),
|
|
||||||
Token::Char('Z'),
|
|
||||||
Token::Char('J'),
|
|
||||||
Token::Char('\n'),
|
|
||||||
];
|
|
||||||
assert_eq!(&expected, &Stater::generate_tokens(s, true).unwrap());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_invalid_option() {
|
fn test_invalid_option() {
|
||||||
new_ucmd!().arg("-w").arg("-q").arg("/").fails();
|
new_ucmd!().arg("-w").arg("-q").arg("/").fails();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue