1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 12:07:46 +00:00

Add tests for fold.

This commit is contained in:
Joseph Crail 2015-05-07 21:14:31 -04:00
parent dd19bc27c1
commit 5878d9904e
6 changed files with 106 additions and 0 deletions

View file

@ -162,6 +162,7 @@ TEST_PROGS := \
cp \ cp \
env \ env \
factor \ factor \
fold \
mkdir \ mkdir \
mv \ mv \
nl \ nl \

1
test/fixtures/fold/lorem_ipsum.txt vendored Normal file
View file

@ -0,0 +1 @@
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc interdum suscipit sem vel ornare. Proin euismod, justo sed mollis dictum, eros urna ultricies augue, eu pharetra mi ex id ante. Duis convallis porttitor aliquam. Nunc vitae tincidunt ex. Suspendisse iaculis ligula ac diam consectetur lacinia. Donec vel velit dui. Etiam fringilla, dolor quis tempor vehicula, lacus turpis bibendum velit, et pellentesque elit odio a magna. Cras vulputate tortor non libero vehicula euismod. Aliquam tincidunt nisl eget enim cursus, viverra sagittis magna commodo. Cras rhoncus egestas leo nec blandit. Suspendisse potenti. Etiam ullamcorper leo vel lacus vestibulum, cursus semper eros efficitur. In hac habitasse platea dictumst. Phasellus scelerisque vehicula fringilla.

View file

@ -0,0 +1,20 @@
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc interdum suscipit
sem vel ornare. Proin euismod, justo sed
mollis dictum, eros urna ultricies augu
e, eu pharetra mi ex id ante. Duis conva
llis porttitor aliquam. Nunc vitae tinci
dunt ex. Suspendisse iaculis ligula ac d
iam consectetur lacinia. Donec vel velit
dui. Etiam fringilla, dolor quis tempor
vehicula, lacus turpis bibendum velit,
et pellentesque elit odio a magna. Cras
vulputate tortor non libero vehicula eui
smod. Aliquam tincidunt nisl eget enim c
ursus, viverra sagittis magna commodo. C
ras rhoncus egestas leo nec blandit. Sus
pendisse potenti. Etiam ullamcorper leo
vel lacus vestibulum, cursus semper eros
efficitur. In hac habitasse platea dict
umst. Phasellus scelerisque vehicula fri
ngilla.

View file

@ -0,0 +1,21 @@
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc interdum suscipit
sem vel ornare. Proin euismod, justo
sed mollis dictum, eros urna ultricies
augue, eu pharetra mi ex id ante. Duis
convallis porttitor aliquam. Nunc vitae
tincidunt ex. Suspendisse iaculis
ligula ac diam consectetur lacinia.
Donec vel velit dui. Etiam fringilla,
dolor quis tempor vehicula, lacus
turpis bibendum velit, et pellentesque
elit odio a magna. Cras vulputate
tortor non libero vehicula euismod.
Aliquam tincidunt nisl eget enim
cursus, viverra sagittis magna commodo.
Cras rhoncus egestas leo nec blandit.
Suspendisse potenti. Etiam ullamcorper
leo vel lacus vestibulum, cursus semper
eros efficitur. In hac habitasse platea
dictumst. Phasellus scelerisque
vehicula fringilla.

View file

@ -0,0 +1,10 @@
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc interdum suscipit
sem vel ornare. Proin euismod, justo sed mollis dictum, eros urna ultricies augu
e, eu pharetra mi ex id ante. Duis convallis porttitor aliquam. Nunc vitae tinci
dunt ex. Suspendisse iaculis ligula ac diam consectetur lacinia. Donec vel velit
dui. Etiam fringilla, dolor quis tempor vehicula, lacus turpis bibendum velit,
et pellentesque elit odio a magna. Cras vulputate tortor non libero vehicula eui
smod. Aliquam tincidunt nisl eget enim cursus, viverra sagittis magna commodo. C
ras rhoncus egestas leo nec blandit. Suspendisse potenti. Etiam ullamcorper leo
vel lacus vestibulum, cursus semper eros efficitur. In hac habitasse platea dict
umst. Phasellus scelerisque vehicula fringilla.

53
test/fold.rs Normal file
View file

@ -0,0 +1,53 @@
use std::fs::File;
use std::io::Read;
use std::path::Path;
use std::process::Command;
static PROGNAME: &'static str = "./fold";
#[test]
fn test_default_80_column_wrap() {
let po = Command::new(PROGNAME)
.arg("lorem_ipsum.txt")
.output()
.unwrap_or_else(|err| panic!("{}", err));
fold_helper(po.stdout, "lorem_ipsum_80_column.expected");
}
#[test]
fn test_40_column_hard_cutoff() {
let po = Command::new(PROGNAME)
.arg("-w")
.arg("40")
.arg("lorem_ipsum.txt")
.output()
.unwrap_or_else(|err| panic!("{}", err));
fold_helper(po.stdout, "lorem_ipsum_40_column_hard.expected");
}
#[test]
fn test_40_column_word_boundary() {
let po = Command::new(PROGNAME)
.arg("-s")
.arg("-w")
.arg("40")
.arg("lorem_ipsum.txt")
.output()
.unwrap_or_else(|err| panic!("{}", err));
fold_helper(po.stdout, "lorem_ipsum_40_column_word.expected");
}
fn fold_helper(output: Vec<u8>, filename: &str) {
let mut f = File::open(Path::new(filename)).unwrap_or_else(|err| {
panic!("{}", err)
});
let mut expected = vec!();
match f.read_to_end(&mut expected) {
Ok(_) => {},
Err(err) => panic!("{}", err)
}
assert_eq!(String::from_utf8(output).unwrap(), String::from_utf8(expected).unwrap());
}