From 358b7a115511491ee856d7178dcd4ce44e8b2b4b Mon Sep 17 00:00:00 2001 From: Michael Gehring Date: Sun, 18 May 2014 22:20:07 +0200 Subject: [PATCH] tr: add -c/-d tests --- tr/test.rs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tr/test.rs b/tr/test.rs index b6fc1456d..e62e79ed9 100644 --- a/tr/test.rs +++ b/tr/test.rs @@ -1,7 +1,7 @@ use std::io::process::Command; -fn run(input: &str, set1: &str, set2: &str) -> Vec { - let mut process = Command::new("build/tr").arg(set1).arg(set2).spawn().unwrap(); +fn run(input: &str, args: &[&'static str]) -> Vec { + let mut process = Command::new("build/tr").args(args).spawn().unwrap(); process.stdin.take_unwrap().write_str(input).unwrap(); @@ -14,20 +14,32 @@ fn run(input: &str, set1: &str, set2: &str) -> Vec { #[test] fn test_toupper() { - let out = run("!abcd!", "a-z", "A-Z"); + let out = run("!abcd!", ["a-z", "A-Z"]); assert_eq!(out.as_slice(), bytes!("!ABCD!")); } #[test] fn test_small_set2() { - let out = run("@0123456789", "0-9", "X"); + let out = run("@0123456789", ["0-9", "X"]); assert_eq!(out.as_slice(), bytes!("@XXXXXXXXXX")); } #[test] fn test_unicode() { - let out = run("(,°□°), ┬─┬", ", ┬─┬", "╯︵┻━┻"); + let out = run("(,°□°), ┬─┬", [", ┬─┬", "╯︵┻━┻"]); assert_eq!(out.as_slice(), bytes!("(╯°□°)╯︵┻━┻")); } +#[test] +fn test_delete() { + let out = run("aBcD", ["-d", "a-z"]); + assert_eq!(out.as_slice(), bytes!("BD")); +} + +#[test] +fn test_delete_complement() { + let out = run("aBcD", ["-d", "-c", "a-z"]); + assert_eq!(out.as_slice(), bytes!("ac")); +} +