On Tuesday 24 January 2006 10:57, Mike McCormack wrote:
This isn't ready yet because it cause a regression test to fail. The failure is related to calling RemoveDirectory on an open directory handle, so isn't a fault in this code.
You must be referring to my evil change notification test here? Another interesting case that I didn't test would be moving a directory that has change notifications registered for it. I see you don't map IN_MOVE_SELF, which would allow us to detect this case. Any particular reason for that?
-Hans
Hans Leidekker wrote:
This isn't ready yet because it cause a regression test to fail. The failure is related to calling RemoveDirectory on an open directory handle, so isn't a fault in this code.
You must be referring to my evil change notification test here?
Yeah, that's the one. Good test! :) It's not failing because we don't get a change notification though; it's failing because Wine won't delete a directory that's open.
I actually have a test that shows the same problem in the ntdll version of the notify tests, but that one doesn't pass yet, so I wasn't forced to solve the problem like I am here :) The kernel change test currently passes because file change notifications work the wrong way - they don't require you to have an open directory handle to get notifications, so it avoids the delete-with-open-handle problem.
Another interesting case that I didn't test would be moving a directory that has change notifications registered for it. I see you don't map IN_MOVE_SELF, which would allow us to detect this case. Any particular reason for that?
First I need to allow deleting directories that have an open handle, then I can make the test work, and IN_MOVE_SELF/IN_DELETE_SELF are probably what's needed.
Mike