[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] tail: use consistent diagnostics with and without inotify
From: |
Pádraig Brady |
Subject: |
[PATCH] tail: use consistent diagnostics with and without inotify |
Date: |
Mon, 9 Dec 2013 02:26:00 +0000 |
* src/tail.c: With inotify, when a file is initially absent,
we fstat(-1) for that file spec, thus recording an errnum of EBADF,
which caused the "has become accessible" diagnostic to be issued,
when the file first appears. Instead we avoid the fstat(-1) and
thus emit the more natural and consistent "has appeared" diagnostic.
* tests/tail-2/retry.sh: Use the new diagnostic which also causes
this test to pass on systems without inotify.
---
src/tail.c | 7 ++++++-
tests/tail-2/retry.sh | 10 +++++-----
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/tail.c b/src/tail.c
index c781dc2..dc4e10d 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -1315,7 +1315,12 @@ static void
check_fspec (struct File_spec *fspec, int wd, int *prev_wd)
{
struct stat stats;
- char const *name = pretty_name (fspec);
+ char const *name;
+
+ if (fspec->fd == -1)
+ return;
+
+ name = pretty_name (fspec);
if (fstat (fspec->fd, &stats) != 0)
{
diff --git a/tests/tail-2/retry.sh b/tests/tail-2/retry.sh
index 7ba7734..ce67a45 100755
--- a/tests/tail-2/retry.sh
+++ b/tests/tail-2/retry.sh
@@ -53,11 +53,11 @@ retry_delay_ wait4lines_ .1 6 3 || fail=1 # Wait for the
expected output.
kill $pid
wait $pid
# Expect 3 lines in the output file.
-[ $( wc -l < out ) = 3 ] || { fail=1; cat out; }
-grep -F 'cannot open' out || { fail=1; cat out; }
-grep -F 'has become accessible' out || { fail=1; cat out; }
-grep '^X$' out || { fail=1; cat out; }
-rm -f missing out || framework_failure_
+[ $( wc -l < out ) = 3 ] || { fail=1; cat out; }
+grep -F 'cannot open' out || { fail=1; cat out; }
+grep -F 'has appeared' out || { fail=1; cat out; }
+grep '^X$' out || { fail=1; cat out; }
+rm -f missing out || framework_failure_
# === Test:
# Ensure that "tail --retry --follow=descriptor" waits for the file to appear.
--
1.7.7.6
- [PATCH] tail: use consistent diagnostics with and without inotify,
Pádraig Brady <=