Skip to content

Commit de2a42e

Browse files
committed
add rename and create to fsnotify test
1 parent 9cf5415 commit de2a42e

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

agent/agentcontainers/watcher/watcher_test.go

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,50 @@ func TestFSNotifyWatcher(t *testing.T) {
4444
require.NoError(t, err, "next event failed")
4545

4646
require.NotNil(t, event, "want non-nil event")
47-
if event.Has(fsnotify.Chmod) && !event.Has(fsnotify.Write) {
48-
// Ignore plain chmod events.
47+
if !event.Has(fsnotify.Write) {
48+
t.Logf("Ignoring event: %s", event)
4949
continue
5050
}
5151
require.Truef(t, event.Has(fsnotify.Write), "want write event: %s", event.String())
5252
require.Equal(t, event.Name, testFile, "want event for test file")
5353
break
5454
}
5555

56+
// Rename the test file to trigger a rename event.
57+
err = os.Rename(testFile, testFile+".bak")
58+
require.NoError(t, err, "rename test file failed")
59+
60+
// Verify that we receive the event we want.
61+
for {
62+
event, err := wut.Next(ctx)
63+
require.NoError(t, err, "next event failed")
64+
require.NotNil(t, event, "want non-nil event")
65+
if !event.Has(fsnotify.Rename) {
66+
t.Logf("Ignoring event: %s", event)
67+
continue
68+
}
69+
require.Truef(t, event.Has(fsnotify.Rename), "want rename event: %s", event.String())
70+
require.Equal(t, event.Name, testFile, "want event for test file")
71+
break
72+
}
73+
74+
err = os.WriteFile(testFile, []byte(`{"test": "new"}`), 0o600)
75+
require.NoError(t, err, "write new test file failed")
76+
77+
// Verify that we receive the event we want.
78+
for {
79+
event, err := wut.Next(ctx)
80+
require.NoError(t, err, "next event failed")
81+
require.NotNil(t, event, "want non-nil event")
82+
if !event.Has(fsnotify.Create) {
83+
t.Logf("Ignoring event: %s", event)
84+
continue
85+
}
86+
require.Truef(t, event.Has(fsnotify.Create), "want create event: %s", event.String())
87+
require.Equal(t, event.Name, testFile, "want event for test file")
88+
break
89+
}
90+
5691
// Test removing the file from the watcher.
5792
err = wut.Remove(testFile)
5893
require.NoError(t, err, "remove file from watcher failed")

0 commit comments

Comments
 (0)