From 200501052edde61747a16cd0af60fa925ef87bfb Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Fri, 28 May 2010 19:25:23 +0100 Subject: truncate: improve handling of non regular files Previously we copied `dd` and suppressed error messages when truncating neither regular files or shared mem objects. This was valid for `dd`, as truncation is ancillary to copying it may also do, but for `truncate` we should display all errors. Also we used the st_size from non regular files which is undefined, so we display an error when the user tries this. * src/truncate (do_truncate): Error when referencing the size of non regular files or non shared memory objects. Display all errors returned by ftruncate(). (main): Error when referencing the size of non regular files or non shared memory objects. Don't suppress error messages for any file types that can't be opened for writing. * tests/misc/truncate-dir-fail: Check that referencing the size of a directory is not supported. * tests/misc/truncate-fifo: Ensure the test doesn't hang by using the `timeout` command. Don't test the return from running ftruncate on the fifo as it's system dependent as to whether this fails or not. NEWS: Mention the change in behavior. Reported by Jim Meyering. --- tests/misc/truncate-fifo | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tests/misc/truncate-fifo') diff --git a/tests/misc/truncate-fifo b/tests/misc/truncate-fifo index 8e2276dab..a4c36cb90 100755 --- a/tests/misc/truncate-fifo +++ b/tests/misc/truncate-fifo @@ -1,5 +1,5 @@ #!/bin/sh -# Make sure truncate works on fifos without hanging or errors +# Make sure truncate works on fifos without hanging # Copyright (C) 2008-2010 Free Software Foundation, Inc. @@ -23,9 +23,9 @@ fi . $srcdir/test-lib.sh -mkfifo_or_skip_ "fifo" +mkfifo_or_skip_ fifo - -truncate -s0 "fifo" || fail=1 +timeout 10 truncate -s0 fifo +test "$?" = 124 && fail=1 Exit $fail -- cgit v1.2.3-54-g00ecf