2016-02-29 05:37:16 +00:00
|
|
|
use common::util::*;
|
|
|
|
|
|
|
|
static UTIL_NAME: &'static str = "uniq";
|
2016-07-29 21:26:32 +00:00
|
|
|
fn new_ucmd() -> UCommand {
|
|
|
|
TestScenario::new(UTIL_NAME).ucmd()
|
|
|
|
}
|
2016-02-29 05:37:16 +00:00
|
|
|
|
|
|
|
static INPUT: &'static str = "sorted.txt";
|
|
|
|
static SKIP_CHARS: &'static str = "skip-chars.txt";
|
|
|
|
static SKIP_FIELDS: &'static str = "skip-fields.txt";
|
2016-08-07 01:25:11 +00:00
|
|
|
static SORTED_ZERO_TERMINATED: &'static str = "sorted-zero-terminated.txt";
|
2016-02-29 05:37:16 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_default() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.pipe_in_fixture(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-simple.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_single_default() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.arg(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-simple.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_counts() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["-c"]).pipe_in_fixture(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-counts.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_skip_1_char() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["-s1"]).pipe_in_fixture(SKIP_CHARS)
|
|
|
|
.run().stdout_is_fixture("skip-1-char.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_skip_5_chars() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["-s5"]).pipe_in_fixture(SKIP_CHARS)
|
|
|
|
.run().stdout_is_fixture("skip-5-chars.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_skip_and_check_2_chars() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["-s3", "-w2"]).pipe_in_fixture(SKIP_CHARS)
|
|
|
|
.run().stdout_is_fixture("skip-3-check-2-chars.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_skip_1_field() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["-f2"]).pipe_in_fixture(SKIP_FIELDS)
|
|
|
|
.run().stdout_is_fixture("skip-2-fields.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_all_repeated() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["--all-repeated"]).pipe_in_fixture(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-all-repeated.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_all_repeated_separate() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["--all-repeated", "separate"]).pipe_in_fixture(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-all-repeated-separate.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_all_repeated_prepend() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["--all-repeated", "prepend"]).pipe_in_fixture(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-all-repeated-prepend.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_unique_only() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["-u"]).pipe_in_fixture(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-unique-only.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_stdin_repeated_only() {
|
2016-07-29 21:26:32 +00:00
|
|
|
new_ucmd()
|
|
|
|
.args(&["-d"]).pipe_in_fixture(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-repeated-only.expected");
|
2016-02-29 05:37:16 +00:00
|
|
|
}
|
2016-08-07 01:25:11 +00:00
|
|
|
|
2016-08-12 18:03:42 +00:00
|
|
|
#[test]
|
|
|
|
fn test_stdin_ignore_case() {
|
|
|
|
new_ucmd()
|
|
|
|
.args(&["-i"]).pipe_in_fixture(INPUT)
|
|
|
|
.run().stdout_is_fixture("sorted-ignore-case.expected");
|
|
|
|
}
|
|
|
|
|
2016-08-07 01:25:11 +00:00
|
|
|
#[test]
|
|
|
|
fn test_stdin_zero_terminated() {
|
|
|
|
new_ucmd()
|
|
|
|
.args(&["-z"]).pipe_in_fixture(SORTED_ZERO_TERMINATED)
|
|
|
|
.run().stdout_is_fixture("sorted-zero-terminated.expected");
|
2016-08-12 18:03:42 +00:00
|
|
|
}
|