mirror of
https://github.com/uutils/coreutils.git
synced 2026-06-10 15:48:22 -07:00
uniq: Flush BufWriter, make error context GNU-like
This commit is contained in:
@@ -110,6 +110,7 @@ impl Uniq {
|
||||
{
|
||||
write_line_terminator!(writer, line_terminator)?;
|
||||
}
|
||||
writer.flush().map_err_context(|| "write error".into())?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -226,7 +227,7 @@ impl Uniq {
|
||||
} else {
|
||||
writer.write_all(line)
|
||||
}
|
||||
.map_err_context(|| "Failed to write line".to_string())?;
|
||||
.map_err_context(|| "write error".to_string())?;
|
||||
|
||||
write_line_terminator!(writer, line_terminator)
|
||||
}
|
||||
|
||||
@@ -1181,3 +1181,14 @@ fn test_stdin_w1_multibyte() {
|
||||
.succeeds()
|
||||
.stdout_is("à\ná\n");
|
||||
}
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
#[test]
|
||||
fn test_failed_write_is_reported() {
|
||||
new_ucmd!()
|
||||
.pipe_in("hello")
|
||||
.args(&["-z"])
|
||||
.set_stdout(std::fs::File::create("/dev/full").unwrap())
|
||||
.fails()
|
||||
.stderr_is("uniq: write error: No space left on device\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user