MCPcopy Create free account
hub / github.com/rabbitstack/fibratus / TestStackExtensions

Function TestStackExtensions

internal/etw/stackext_test.go:30–60  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

28)
29
30func TestStackExtensions(t *testing.T) {
31 cfg := &config.Config{
32 EventSource: config.EventSourceConfig{
33 EnableThreadEvents: true,
34 EnableNetEvents: true,
35 EnableFileIOEvents: true,
36 EnableMemEvents: true,
37 BufferSize: 1024,
38 FlushTimer: time.Millisecond * 2300,
39 },
40 }
41
42 cfg.EventSource.Init()
43
44 exts := NewStackExtensions(cfg.EventSource)
45 assert.Len(t, exts.EventIds(), 0)
46
47 exts.EnableProcessCallstack()
48 exts.EnableRegistryCallstack()
49 exts.EnableFileCallstack()
50 exts.EnableMemoryCallstack()
51
52 assert.Len(t, exts.EventIds(), 7)
53 assert.Contains(t, exts.EventIds(), etw.ClassicEventID{GUID: event.ProcessEventGUID, Type: uint8(event.CreateProcess.HookID())})
54 assert.Contains(t, exts.EventIds(), etw.ClassicEventID{GUID: event.ThreadEventGUID, Type: uint8(event.CreateThread.HookID())})
55 assert.Contains(t, exts.EventIds(), etw.ClassicEventID{GUID: event.ThreadEventGUID, Type: uint8(event.TerminateThread.HookID())})
56 assert.Contains(t, exts.EventIds(), etw.ClassicEventID{GUID: event.FileEventGUID, Type: uint8(event.CreateFile.HookID())})
57 assert.Contains(t, exts.EventIds(), etw.ClassicEventID{GUID: event.FileEventGUID, Type: uint8(event.RenameFile.HookID())})
58 assert.Contains(t, exts.EventIds(), etw.ClassicEventID{GUID: event.FileEventGUID, Type: uint8(event.DeleteFile.HookID())})
59 assert.Contains(t, exts.EventIds(), etw.ClassicEventID{GUID: event.MemEventGUID, Type: uint8(event.VirtualAlloc.HookID())})
60}

Callers

nothing calls this directly

Calls 10

EventIdsMethod · 0.95
EnableFileCallstackMethod · 0.95
EnableMemoryCallstackMethod · 0.95
NewStackExtensionsFunction · 0.85
ContainsMethod · 0.80
InitMethod · 0.45
LenMethod · 0.45
HookIDMethod · 0.45

Tested by

no test coverage detected