Skip to content

Commit 562780d

Browse files
committed
Add Has API method to event Actions
- avoids using bitmask operation
1 parent da6dfaa commit 562780d

File tree

2 files changed

+16
-22
lines changed

2 files changed

+16
-22
lines changed

fanotify_api.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,3 +175,8 @@ func (l *Listener) ClearWatch() error {
175175
l.watches = make(map[string]bool)
176176
return nil
177177
}
178+
179+
// Has returns true if actions contains the passed in action (a).
180+
func (actions Action) Has(a Action) bool {
181+
return actions&a == a
182+
}

fanotify_test.go

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ func TestWithCapSysAdmFanotifyFileAccessed(t *testing.T) {
9090
case event := <-l.Events:
9191
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testFile)
9292
assert.Equal(t, event.Pid, pid)
93-
hasFileAccessed := (event.Actions & FileAccessed) == FileAccessed
94-
assert.True(t, hasFileAccessed)
93+
assert.True(t, event.Actions.Has(FileAccessed))
9594
}
9695
}
9796

@@ -119,8 +118,7 @@ func TestWithCapSysAdmFanotifyFileModified(t *testing.T) {
119118
case event := <-l.Events:
120119
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testFile)
121120
assert.Equal(t, event.Pid, pid)
122-
isModifed := (event.Actions & FileModified) == FileModified
123-
assert.True(t, isModifed)
121+
assert.True(t, event.Actions.Has(FileModified))
124122
}
125123
}
126124

@@ -148,8 +146,7 @@ func TestWithCapSysAdmFanotifyFileClosed(t *testing.T) {
148146
case event := <-l.Events:
149147
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testFile)
150148
assert.Equal(t, event.Pid, pid)
151-
closeNoWrite := (event.Actions & FileClosedWithNoWrite) == FileClosedWithNoWrite
152-
assert.True(t, closeNoWrite)
149+
assert.True(t, event.Actions.Has(FileClosedWithNoWrite))
153150
}
154151
}
155152

@@ -177,8 +174,7 @@ func TestWithCapSysAdmFanotifyFileOpen(t *testing.T) {
177174
case event := <-l.Events:
178175
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testFile)
179176
assert.Equal(t, event.Pid, pid)
180-
opened := (event.Actions & FileOpened) == FileOpened
181-
assert.True(t, opened)
177+
assert.True(t, event.Actions.Has(FileOpened))
182178
}
183179
}
184180

@@ -202,8 +198,7 @@ func TestWithCapSysAdmFanotifyFileOrDirectoryOpen(t *testing.T) {
202198
case event := <-l.Events:
203199
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), fmt.Sprintf("%s/%s", watchDir, "."))
204200
assert.Equal(t, event.Pid, pid)
205-
opened := (event.Actions & FileOpened) == FileOpened
206-
assert.True(t, opened)
201+
assert.True(t, event.Actions.Has(FileOpened))
207202
}
208203
}
209204

@@ -236,8 +231,7 @@ exit 0
236231
case event := <-l.Events:
237232
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testFile)
238233
assert.Equal(t, event.Pid, pid)
239-
openedForExec := (event.Actions & FileOpenedForExec) == FileOpenedForExec
240-
assert.True(t, openedForExec)
234+
assert.True(t, event.Actions.Has(FileOpenedForExec))
241235
}
242236
}
243237

@@ -270,8 +264,7 @@ exit 0
270264
case event := <-l.Events:
271265
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testFile)
272266
assert.Equal(t, event.Pid, pid)
273-
openedForExec := (event.Actions & FileAttribChanged) == FileAttribChanged
274-
assert.True(t, openedForExec)
267+
assert.True(t, event.Actions.Has(FileAttribChanged))
275268
}
276269
}
277270

@@ -295,8 +288,7 @@ func TestWithCapSysAdmFanotifyFileCreated(t *testing.T) {
295288
case event := <-l.Events:
296289
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testFile)
297290
assert.Equal(t, event.Pid, pid)
298-
created := (event.Actions & FileCreated) == FileCreated
299-
assert.True(t, created)
291+
assert.True(t, event.Actions.Has(FileCreated))
300292
}
301293
}
302294

@@ -320,8 +312,7 @@ func TestWithCapSysAdmFanotifyFileOrDirectoryCreated(t *testing.T) {
320312
case event := <-l.Events:
321313
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testDir)
322314
assert.Equal(t, event.Pid, pid)
323-
created := (event.Actions & FileCreated) == FileCreated
324-
assert.True(t, created)
315+
assert.True(t, event.Actions.Has(FileCreated))
325316
}
326317
}
327318

@@ -350,8 +341,7 @@ func TestWithCapSysAdmFanotifyFileDeleted(t *testing.T) {
350341
case event := <-l.Events:
351342
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testFile)
352343
assert.Equal(t, event.Pid, pid)
353-
deleted := (event.Actions & FileDeleted) == FileDeleted
354-
assert.True(t, deleted)
344+
assert.True(t, event.Actions.Has(FileDeleted))
355345
}
356346
}
357347

@@ -380,7 +370,6 @@ func TestWithCapSysAdmFanotifyFileOrDirDeleted(t *testing.T) {
380370
case event := <-l.Events:
381371
assert.Equal(t, fmt.Sprintf("%s/%s", event.Path, event.FileName), testDir)
382372
assert.Equal(t, event.Pid, pid)
383-
deleted := (event.Actions & FileDeleted) == FileDeleted
384-
assert.True(t, deleted)
373+
assert.True(t, event.Actions.Has(FileDeleted))
385374
}
386375
}

0 commit comments

Comments
 (0)