Subject: Re: bug#22534: File notify broken on Windows

From: Fabrice Popineau <[email-masked]>
Date: Sun, 7 Feb 2016 14:37:34 +0100

The situation has improved especially with file-notify-test06-many-events,
but I still see problems in batch mode.
The remaining problems are in file-notify-test02-events.

In the 'check for attribute change', I see only 2 'changed' notifications,
and not 4
as expected by the test (around line 512: w32notify does not distinguish
between
'changed' and 'attribute-changed').

So I need to apply :

diff --git a/test/automated/file-notify-tests.el
b/test/automated/file-notify-tests.el
index 5fc4ff8..943bd7e 100644
--- a/test/automated/file-notify-tests.el
+++ b/test/automated/file-notify-tests.el
@@ -507,7 +512,7 @@ file-notify--test-with-events
                ;; w32notify does not distinguish between `changed' and
                ;; `attribute-changed'.
                ((string-equal (file-notify--test-library) "w32notify")
-               '(changed changed changed changed))
+               '(changed changed))
                ;; For kqueue and in the remote case, `write-region'
                ;; raises also an `attribute-changed' event.
                ((or (string-equal (file-notify--test-library) "kqueue")

For the rest of this test, whereas the test passes in interactive mode, it
fails in batch mode with
several 'deleted' notifications. Namely, I need to apply the following for
the test to pass.

diff --git a/test/automated/file-notify-tests.el
b/test/automated/file-notify-tests.el
index 5fc4ff8..943bd7e 100644
--- a/test/automated/file-notify-tests.el
+++ b/test/automated/file-notify-tests.el
@@ -396,7 +397,8 @@ file-notify--test-with-events
                ;; w32notify does raise a `stopped' event when a
                ;; watched directory is deleted.
                ((string-equal (file-notify--test-library) "w32notify")
-               '(created changed deleted))
+               '(created changed ; deleted
+                          ))
                ;; cygwin recognizes only `deleted' and `stopped' events.
                ((eq system-type 'cygwin)
                '(deleted stopped))
@@ -430,7 +432,8 @@ file-notify--test-with-events
                ;; `attribute-changed'.
                ((string-equal (file-notify--test-library) "w32notify")
                '(created changed created changed changed changed changed
-                 deleted deleted))
+                          ;; deleted deleted
+                          ))
                ;; cygwin recognizes only `deleted' and `stopped' events.
                ((eq system-type 'cygwin)
                '(deleted stopped))
@@ -479,6 +482,8 @@ file-notify--test-with-events
                ;; the directory.  Except for kqueue.
                ((string-equal (file-notify--test-library) "kqueue")
                '(created changed renamed deleted stopped))
+               ((string-equal (file-notify--test-library) "w32notify")
+               '(created changed renamed))
                (t '(created changed renamed deleted deleted stopped)))
             (read-event nil nil 0.1)
             (write-region

Fabrice

2016-02-06 20:55 GMT+01:00 Eli Zaretskii <[email-masked]>:

> > From: Michael Albinus <[email-masked]>
> > Cc: [email-masked],  [email-masked]
> > Date: Sat, 06 Feb 2016 20:24:32 +0100
> >
> > Please install the patch
>
> Done.
>