From 4bb5dbcfef55c4f66755dd3c48b906e4e9030b96 Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Mon, 13 Feb 2012 21:47:28 +0000 Subject: dd: fix issues in the count_bytes and seek_bytes flags change These edge cases were missed in the previous commit 140eca15c. * src/dd.c (main): Include the bytes slop when truncating without further I/O. Don't invalidate the whole file cache in the case where 0 < count < ibs. * tests/dd/bytes: Change to using the independent truncate command to generate the file for comparison. Remove a redundant test case and replace with one testing the truncation only logic. --- tests/dd/bytes | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'tests') diff --git a/tests/dd/bytes b/tests/dd/bytes index 603874290..15755aae3 100755 --- a/tests/dd/bytes +++ b/tests/dd/bytes @@ -45,13 +45,12 @@ esac # seek bytes echo abcdefghijklm | dd bs=5 seek=8 oflag=seek_bytes > out 2> /dev/null || fail=1 -echo abcdefghijklm | - dd bs=4 seek=2 > expected 2> /dev/null || fail=1 +printf '\0\0\0\0\0\0\0\0abcdefghijklm\n' > expected compare expected out || fail=1 -# seek bytes on empty file -echo abcdefghijklm | - dd bs=5 seek=8 oflag=seek_bytes > out2 2> /dev/null || fail=1 -compare expected out2 || fail=1 +# Just truncation, no I/O +dd bs=5 seek=8 oflag=seek_bytes of=out2 count=0 2> /dev/null || fail=1 +truncate -s8 expected2 +compare expected2 out2 || fail=1 Exit $fail -- cgit v1.2.3-54-g00ecf