Skip to content

Commit 51c8c8a

Browse files
committed
add file info tests
1 parent 13ee1b1 commit 51c8c8a

File tree

2 files changed

+48
-7
lines changed

2 files changed

+48
-7
lines changed

testing/testrunner/tests.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,13 @@ func TestFileCreate(et *EventsTraceInstance) {
177177

178178
AssertPidInfoEqual(binOutput.PidInfo, fileCreateEvent.Pids)
179179
AssertStringsEqual(fileCreateEvent.Path, binOutput.FileNameOrig)
180+
// File Info
181+
AssertStringsEqual(fileCreateEvent.Finfo.Type, "FILE")
182+
AssertUint64NotEqual(fileCreateEvent.Finfo.Inode, 0)
183+
AssertUint64Equal(fileCreateEvent.Finfo.Mode, 100644)
184+
AssertUint64Equal(fileCreateEvent.Finfo.Size, 0)
185+
AssertUint64Equal(fileCreateEvent.Finfo.Uid, 0)
186+
AssertUint64Equal(fileCreateEvent.Finfo.Gid, 0)
180187
}
181188

182189
func TestFileDelete(et *EventsTraceInstance) {
@@ -204,6 +211,13 @@ func TestFileDelete(et *EventsTraceInstance) {
204211

205212
AssertPidInfoEqual(binOutput.PidInfo, fileDeleteEvent.Pids)
206213
AssertStringsEqual(fileDeleteEvent.Path, binOutput.FileNameNew)
214+
// File Info
215+
AssertStringsEqual(fileDeleteEvent.Finfo.Type, "FILE")
216+
AssertUint64NotEqual(fileDeleteEvent.Finfo.Inode, 0)
217+
AssertUint64Equal(fileDeleteEvent.Finfo.Mode, 100644)
218+
AssertUint64Equal(fileDeleteEvent.Finfo.Size, 0)
219+
AssertUint64Equal(fileDeleteEvent.Finfo.Uid, 0)
220+
AssertUint64Equal(fileDeleteEvent.Finfo.Gid, 0)
207221
}
208222

209223
func TestFileRename(et *EventsTraceInstance) {
@@ -232,6 +246,13 @@ func TestFileRename(et *EventsTraceInstance) {
232246
AssertPidInfoEqual(binOutput.PidInfo, fileRenameEvent.Pids)
233247
AssertStringsEqual(fileRenameEvent.OldPath, binOutput.FileNameOrig)
234248
AssertStringsEqual(fileRenameEvent.NewPath, binOutput.FileNameNew)
249+
// File Info
250+
AssertStringsEqual(fileRenameEvent.Finfo.Type, "FILE")
251+
AssertUint64NotEqual(fileRenameEvent.Finfo.Inode, 0)
252+
AssertUint64Equal(fileRenameEvent.Finfo.Mode, 100644)
253+
AssertUint64Equal(fileRenameEvent.Finfo.Size, 0)
254+
AssertUint64Equal(fileRenameEvent.Finfo.Uid, 0)
255+
AssertUint64Equal(fileRenameEvent.Finfo.Gid, 0)
235256
}
236257

237258
func TestSetuid(et *EventsTraceInstance) {

testing/testrunner/utils.go

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,17 @@ type NetInfo struct {
7878
NetNs int64 `json:"network_namespace"`
7979
}
8080

81+
type FileInfo struct {
82+
Type string `json:"type"`
83+
Inode uint64 `json:"inode"`
84+
Mode uint64 `json:"mode"`
85+
Size uint64 `json:"size"`
86+
Uid uint64 `json:"uid"`
87+
Gid uint64 `json:"gid"`
88+
Mtime uint64 `json:"mtime"`
89+
Ctime uint64 `json:"ctime"`
90+
}
91+
8192
type ProcessForkEvent struct {
8293
ParentPids PidInfo `json:"parent_pids"`
8394
ChildPids PidInfo `json:"child_pids"`
@@ -95,19 +106,22 @@ type ProcessExecEvent struct {
95106
}
96107

97108
type FileCreateEvent struct {
98-
Pids PidInfo `json:"pids"`
99-
Path string `json:"path"`
109+
Pids PidInfo `json:"pids"`
110+
Path string `json:"path"`
111+
Finfo FileInfo `json:"file_info"`
100112
}
101113

102114
type FileDeleteEvent struct {
103-
Pids PidInfo `json:"pids"`
104-
Path string `json:"path"`
115+
Pids PidInfo `json:"pids"`
116+
Path string `json:"path"`
117+
Finfo FileInfo `json:"file_info"`
105118
}
106119

107120
type FileRenameEvent struct {
108-
Pids PidInfo `json:"pids"`
109-
OldPath string `json:"old_path"`
110-
NewPath string `json:"new_path"`
121+
Pids PidInfo `json:"pids"`
122+
OldPath string `json:"old_path"`
123+
NewPath string `json:"new_path"`
124+
Finfo FileInfo `json:"file_info"`
111125
}
112126

113127
type SetUidEvent struct {
@@ -234,6 +248,12 @@ func AssertUint64Equal(a, b uint64) {
234248
}
235249
}
236250

251+
func AssertUint64NotEqual(a, b uint64) {
252+
if a == b {
253+
TestFail(fmt.Sprintf("Test assertion failed 0x%016x == 0x%016x", a, b))
254+
}
255+
}
256+
237257
func PrintBPFDebugOutput() {
238258
file, err := os.Open("/sys/kernel/debug/tracing/trace")
239259
if err != nil {

0 commit comments

Comments
 (0)