FSEvents backend for tup monitor#531
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
|
Overall this looks really good! I'm glad you split out the common stuff into its own file. Do the test cases pass on your machine? When I run it on my mac, the tests that use the monitor fail with things like: |
|
I completely neglected the tests -- I'll try to get them all passing on my machine. (will probably affect both my open PRs) |
|
Now that I've fixed the baseline I can start fixing the monitor-specific tests on top of that baseline. |
Fixes the autoupdate-on-fail tests t7051 and t7061, and the synchronization gap that caused the entire t7xxx/t8xxx monitor suite to fail on macOS. Fixes 56-of-67 originally failing tests
The flag remains useful for the main-loop's event-driven path but isn't trusted for synchronization. inotify reaches the same shape by draining its event queue at the yield regardless.
FSEvents doesn't tell us both sides of a rename, so we need to track inodes in order to be able to tell.
2b231bb to
5c1ec19
Compare
|
FSEvents doesn't provide before/after for renames, only "a rename happened somewhere". I tried to help the rename tests by tracking inodes in the tup db. I'm not sure that's the best solution but it seems to work. Re-running the test suite now to make sure. I think kqueue may be an option if FSEvents is too difficult, but if most of the tests are passing with this I think it may be fine. |
(I installed ccache) That's all the failures with both this and #530. I think that should be acceptable? t8063 might be a tough one, I'll investigate. |
tup monitorcurrently does not support macOS; add an FSEvents backend.