(t *testing.T)
| 414 | } |
| 415 | |
| 416 | func TestProcessCallstackProcsTTL(t *testing.T) { |
| 417 | log.SetLevel(log.DebugLevel) |
| 418 | r := new(MockResolver) |
| 419 | c := &config.Config{} |
| 420 | |
| 421 | psnap := new(ps.SnapshotterMock) |
| 422 | |
| 423 | opts := uint32(sys.SymUndname | sys.SymCaseInsensitive | sys.SymAutoPublics | sys.SymOmapFindNearest | sys.SymDeferredLoads) |
| 424 | r.On("Initialize", mock.Anything, opts).Return(nil) |
| 425 | r.On("LoadModule", windows.CurrentProcess(), mock.Anything).Return(nil) |
| 426 | r.On("GetModuleName", mock.Anything, mock.Anything).Return("C:\\WINDOWS\\System32\\KERNEL32.DLL") |
| 427 | r.On("GetSymbolNameAndOffset", mock.Anything, mock.Anything).Return("CreateProcessW", 0x54) |
| 428 | r.On("Cleanup", mock.Anything) |
| 429 | |
| 430 | s := NewSymbolizer(r, psnap, c, false) |
| 431 | require.NotNil(t, s) |
| 432 | defer s.Close() |
| 433 | |
| 434 | n := 10 |
| 435 | for n > 0 { |
| 436 | e := &event.Event{ |
| 437 | Type: event.CreateProcess, |
| 438 | Tid: 2484, |
| 439 | PID: 1232, |
| 440 | CPU: 1, |
| 441 | Seq: 2, |
| 442 | Name: "CreatedProcess", |
| 443 | Timestamp: time.Now().Add(time.Millisecond * time.Duration(n)), |
| 444 | Category: event.Process, |
| 445 | Host: "archrabbit", |
| 446 | Params: event.Params{ |
| 447 | params.ProcessParentID: {Name: params.ProcessParentID, Type: params.PID, Value: (uint32(os.Getpid()))}, |
| 448 | params.ProcessRealParentID: {Name: params.ProcessRealParentID, Type: params.PID, Value: (uint32(os.Getpid()))}, |
| 449 | params.Callstack: {Name: params.Callstack, Type: params.Slice, Value: []va.Address{0x7ffb5c1d0396, 0x7ffb5d8e61f4, 0x7ffb3138592e, 0x7ffb313853b2, 0x2638e59e0a5}}, |
| 450 | }, |
| 451 | } |
| 452 | _, _ = s.ProcessEvent(e) |
| 453 | n-- |
| 454 | time.Sleep(time.Millisecond * time.Duration(rand.Intn(15)*n)) |
| 455 | } |
| 456 | // process should be present |
| 457 | assert.Equal(t, 1, s.procsSize()) |
| 458 | |
| 459 | time.Sleep(time.Millisecond * 2250) |
| 460 | |
| 461 | // evicted |
| 462 | r.AssertNumberOfCalls(t, "Cleanup", 1) |
| 463 | assert.Equal(t, 0, s.procsSize()) |
| 464 | } |
nothing calls this directly
no test coverage detected