1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 03:27:44 +00:00

Merge pull request #4432 from jfinkels/dd-nocache

dd: support the [io]flag=nocache option
This commit is contained in:
Sylvestre Ledru 2023-05-12 09:53:57 +02:00 committed by GitHub
commit 64c49de0cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 211 additions and 13 deletions

View file

@ -1536,3 +1536,29 @@ fn test_multiple_processes_reading_stdin() {
.succeeds()
.stdout_only("def\n");
}
/// Test that discarding system file cache fails for stdin.
#[test]
#[cfg(target_os = "linux")]
fn test_nocache_stdin_error() {
#[cfg(not(target_env = "musl"))]
let detail = "Illegal seek";
#[cfg(target_env = "musl")]
let detail = "Invalid seek";
new_ucmd!()
.args(&["iflag=nocache", "count=0", "status=noxfer"])
.fails()
.code_is(1)
.stderr_only(format!("dd: failed to discard cache for: 'standard input': {detail}\n0+0 records in\n0+0 records out\n"));
}
/// Test for discarding system file cache.
#[test]
#[cfg(target_os = "linux")]
fn test_nocache_file() {
let (at, mut ucmd) = at_and_ucmd!();
at.write_bytes("f", b"a".repeat(1 << 20).as_slice());
ucmd.args(&["if=f", "of=/dev/null", "iflag=nocache", "status=noxfer"])
.succeeds()
.stderr_only("2048+0 records in\n2048+0 records out\n");
}