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

From: Fabrice Popineau <[email-masked]>
Date: Wed, 3 Feb 2016 00:36:22 +0100

You will find the commit below (with not too much surprise).
However, I don't have much time these days to sort this out.

Fabrice

$ git bisect good
7bf54d01159eb09bae3c9cd86f2af0812d9afdf6 is the first bad commit
commit 7bf54d01159eb09bae3c9cd86f2af0812d9afdf6
Author: Michael Albinus <[email-masked]>
Date:   Fri Jan 22 19:56:09 2016 +0100

    Backport kqueue integration from master

    * configure.ac (--with-file-notification): Add kqueue.
    (top): Remove special test for "${HAVE_NS}" and
    ${with_file_notification}, this is handled inside gfilenotify
    tests.  Add kqueue tests.  Use NOTIFY_CFLAGS and NOTIFY_LIBS
    instead of library specific variables.  Add error message for
    gfile on Nextstep.

    * doc/lispref/os.texi (File Notifications): Add kqueue as backend.
    Fix some glitches in the example.

    * etc/NEWS: Mention kqueue.

    * lisp/filenotify.el (file-notify--library)
    (file-notify-descriptors, file-notify-callback)
    (file-notify-add-watch, file-notify-rm-watch)
    (file-notify-valid-p): Add kqueue support.
    (file-notify--rm-descriptor): Remove WHAT arg.

    * src/Makefile.in: Use NOTIFY_CFLAGS and NOTIFY_LIBS.

    * src/emacs.c (main): Call globals_of_kqueue and syms_of_kqueue.

    * src/inotify.c (inotifyevent_to_event): Extract file name from
    watch_object if the event doesn't provide it.
    (Finotify_add_watch): Add file name to watch_object.

    * src/keyboard.c (make_lispy_event): Check also for HAVE_KQUEUE.

    * src/kqueue.c: New file.

    * src/lisp.h: Declare extern globals_of_kqueue and syms_of_kqueue.

    * test/automated/file-notify-tests.el
    (file-notify--test-expected-events): Remove.
    (file-notify--test-cleanup): Do not set that variable.
    (file-notify--test-timeout) Use different timeouts for
    different libraries.
    (file-notify--test-library): New defun.
    (file-notify--test-event-test): Make stronger checks.
    (file-notify--test-with-events): EVENTS can also be a list of
    lists.  Flush outstanding events before running the body.
    Make timeout heuristically depend on the number of events.
    (file-notify-test01-add-watch, file-notify-test02-events)
    (file-notify-test04-file-validity, file-notify-test05-dir-validity):
    Rewrite in order to call file monitors but directory monitors.
    (file-notify-test02-events, file-notify-test04-file-validity): Do
    not skip cygwin tests.  Add additional test for file creation.
    Adapt expected result for different backends.
    (file-notify-test03-autorevert): Some of the tests don't work for
    w32notify.
    (file-notify-test06-many-events): New test.

:100644 100644 b5e6b77c713ca7fa82c7c23652170dff3c5adfd5
76193fae6dd61d4448b3a304d3a0e4978afb810e M      configure.ac
:040000 040000 6b5e2cfa75a456e6f4d43e183976d6e8ece21462
41f9bd9c7893cbdccf22e97d7ddc3500c4443d5c M      doc
:040000 040000 98523d83bfa75e0401f7a1049548c4f94ddb6b0d
4a87e49af135328911e0b31099f0e9d0f4f13aaf M      etc
:040000 040000 96c8883a122a08fe59a772611eff59a8330a37c1
8e04830234a1d3e8af4fd37ceb3eb9c4503718c3 M      lisp
:040000 040000 ebdfee938f44d5d2818a29bd07f795521a3583ee
53a01fd613d99e20cb563ab8418ec2776c146f09 M      src
:040000 040000 9d27cfce0b9d77d43b2180ecd95451469309da92
71329cdc731a284e563265a90876cbf8ea94305b M      test

2016-02-02 17:15 GMT+01:00 Eli Zaretskii <[email-masked]>:

> > From: Fabrice Popineau <[email-masked]>
> > Date: Tue, 2 Feb 2016 07:23:43 +0100
> >
> > When I run 'make check', the process is stuck on filenotify tests.
> > If I try to run the tests interactively, I have to hit 'Ctrl-g'.
> > Emacs waits forever on the first test.
>
> Can you bisect to find the commit which broke this?
>
> Thanks.
>