From 133a6c5563e8b2fbfe18bcccad3b4c084acaa2f4 Mon Sep 17 00:00:00 2001 From: Joseph Crail Date: Sat, 30 May 2015 18:54:28 -0400 Subject: [PATCH] Add initial tests for head. --- Makefile | 1 + test/fixtures/head/lorem_ipsum.txt | 24 +++++++ .../fixtures/head/lorem_ipsum_1_line.expected | 1 + .../head/lorem_ipsum_5_chars.expected | 1 + .../head/lorem_ipsum_default.expected | 10 +++ test/head.rs | 65 +++++++++++++++++++ 6 files changed, 102 insertions(+) create mode 100644 test/fixtures/head/lorem_ipsum.txt create mode 100644 test/fixtures/head/lorem_ipsum_1_line.expected create mode 100644 test/fixtures/head/lorem_ipsum_5_chars.expected create mode 100644 test/fixtures/head/lorem_ipsum_default.expected create mode 100644 test/head.rs diff --git a/Makefile b/Makefile index 957fcbb40..74b6a694e 100644 --- a/Makefile +++ b/Makefile @@ -170,6 +170,7 @@ TEST_PROGS := \ false \ fold \ hashsum \ + head \ mkdir \ mv \ nl \ diff --git a/test/fixtures/head/lorem_ipsum.txt b/test/fixtures/head/lorem_ipsum.txt new file mode 100644 index 000000000..5d974b854 --- /dev/null +++ b/test/fixtures/head/lorem_ipsum.txt @@ -0,0 +1,24 @@ +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. diff --git a/test/fixtures/head/lorem_ipsum_1_line.expected b/test/fixtures/head/lorem_ipsum_1_line.expected new file mode 100644 index 000000000..409369c4e --- /dev/null +++ b/test/fixtures/head/lorem_ipsum_1_line.expected @@ -0,0 +1 @@ +Lorem ipsum dolor sit amet, diff --git a/test/fixtures/head/lorem_ipsum_5_chars.expected b/test/fixtures/head/lorem_ipsum_5_chars.expected new file mode 100644 index 000000000..77aaba021 --- /dev/null +++ b/test/fixtures/head/lorem_ipsum_5_chars.expected @@ -0,0 +1 @@ +Lorem \ No newline at end of file diff --git a/test/fixtures/head/lorem_ipsum_default.expected b/test/fixtures/head/lorem_ipsum_default.expected new file mode 100644 index 000000000..7b721fd08 --- /dev/null +++ b/test/fixtures/head/lorem_ipsum_default.expected @@ -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 augue, +eu pharetra mi ex id ante. +Duis convallis porttitor aliquam. +Nunc vitae tincidunt ex. +Suspendisse iaculis ligula ac diam consectetur lacinia. diff --git a/test/head.rs b/test/head.rs new file mode 100644 index 000000000..f92c8cbac --- /dev/null +++ b/test/head.rs @@ -0,0 +1,65 @@ +use std::process::Command; +use util::*; + +static PROGNAME: &'static str = "./head"; +static INPUT: &'static str = "lorem_ipsum.txt"; + +#[path = "common/util.rs"] +#[macro_use] +mod util; + +#[test] +fn test_stdin_default() { + let mut cmd = Command::new(PROGNAME); + let result = run_piped_stdin(&mut cmd, get_file_contents(INPUT)); + assert_eq!(result.stdout, get_file_contents("lorem_ipsum_default.expected")); +} + +#[test] +fn test_stdin_1_line_obsolete() { + let mut cmd = Command::new(PROGNAME); + let result = run_piped_stdin(&mut cmd.args(&["-1"]), get_file_contents(INPUT)); + assert_eq!(result.stdout, get_file_contents("lorem_ipsum_1_line.expected")); +} + +#[test] +fn test_stdin_1_line() { + let mut cmd = Command::new(PROGNAME); + let result = run_piped_stdin(&mut cmd.args(&["-n", "1"]), get_file_contents(INPUT)); + assert_eq!(result.stdout, get_file_contents("lorem_ipsum_1_line.expected")); +} + +#[test] +fn test_stdin_5_chars() { + let mut cmd = Command::new(PROGNAME); + let result = run_piped_stdin(&mut cmd.args(&["-c", "5"]), get_file_contents(INPUT)); + assert_eq!(result.stdout, get_file_contents("lorem_ipsum_5_chars.expected")); +} + +#[test] +fn test_single_default() { + let mut cmd = Command::new(PROGNAME); + let result = run(&mut cmd.arg(INPUT)); + assert_eq!(result.stdout, get_file_contents("lorem_ipsum_default.expected")); +} + +#[test] +fn test_single_1_line_obsolete() { + let mut cmd = Command::new(PROGNAME); + let result = run(&mut cmd.args(&["-1", INPUT])); + assert_eq!(result.stdout, get_file_contents("lorem_ipsum_1_line.expected")); +} + +#[test] +fn test_single_1_line() { + let mut cmd = Command::new(PROGNAME); + let result = run(&mut cmd.args(&["-n", "1", INPUT])); + assert_eq!(result.stdout, get_file_contents("lorem_ipsum_1_line.expected")); +} + +#[test] +fn test_single_5_chars() { + let mut cmd = Command::new(PROGNAME); + let result = run(&mut cmd.args(&["-c", "5", INPUT])); + assert_eq!(result.stdout, get_file_contents("lorem_ipsum_5_chars.expected")); +}