53 lines
1.1 KiB
Rust
53 lines
1.1 KiB
Rust
|
use assert_cmd::prelude::*;
|
||
|
use predicates::prelude::*;
|
||
|
use std::process::Command;
|
||
|
|
||
|
#[test]
|
||
|
fn literal_output() -> Result<(), Box<dyn std::error::Error>> {
|
||
|
let mut cmd = Command::cargo_bin("echo")?;
|
||
|
|
||
|
cmd.arg("abc\\ndef");
|
||
|
cmd.assert()
|
||
|
.success()
|
||
|
.stdout(predicate::str::contains("abc\\ndef\n"));
|
||
|
|
||
|
Ok(())
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn newline_escape() -> Result<(), Box<dyn std::error::Error>> {
|
||
|
let mut cmd = Command::cargo_bin("echo")?;
|
||
|
|
||
|
cmd.arg("-e").arg("abc\\ndef");
|
||
|
cmd.assert()
|
||
|
.success()
|
||
|
.stdout(predicate::str::contains("abc\ndef"));
|
||
|
|
||
|
Ok(())
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn cut_output_escape() -> Result<(), Box<dyn std::error::Error>> {
|
||
|
let mut cmd = Command::cargo_bin("echo")?;
|
||
|
|
||
|
cmd.arg("-e").arg("abc\\cdef");
|
||
|
cmd.assert()
|
||
|
.success()
|
||
|
.stdout(predicate::str::contains("abc"))
|
||
|
.stdout(predicate::str::contains("def\n").not());
|
||
|
|
||
|
Ok(())
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn omit_endline() -> Result<(), Box<dyn std::error::Error>> {
|
||
|
let mut cmd = Command::cargo_bin("echo")?;
|
||
|
|
||
|
cmd.arg("-n").arg("abcdef");
|
||
|
cmd.assert()
|
||
|
.success()
|
||
|
.stdout(predicate::str::contains("abcdef"))
|
||
|
.stdout(predicate::str::contains("\n").not());
|
||
|
|
||
|
Ok(())
|
||
|
}
|