MCPcopy Create free account
hub / github.com/coder/coder / TestLogSender_SendError

Function TestLogSender_SendError

codersdk/agentsdk/logs_internal_test.go:387–426  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

385}
386
387func TestLogSender_SendError(t *testing.T) {
388 t.Parallel()
389 ctx := testutil.Context(t, testutil.WaitShort)
390 logger := testutil.Logger(t)
391 fDest := newFakeLogDest()
392 expectedErr := xerrors.New("test")
393 fDest.err = expectedErr
394 uut := NewLogSender(logger)
395
396 t0 := dbtime.Now()
397
398 ls1 := uuid.UUID{0x11}
399 uut.Enqueue(ls1, Log{
400 CreatedAt: t0,
401 Output: "test log 0, src 1",
402 Level: codersdk.LogLevelInfo,
403 })
404
405 loopErr := make(chan error, 1)
406 go func() {
407 err := uut.SendLoop(ctx, fDest)
408 loopErr <- err
409 }()
410
411 req := testutil.TryReceive(ctx, t, fDest.reqs)
412 require.NotNil(t, req)
413
414 err := testutil.TryReceive(ctx, t, loopErr)
415 require.ErrorIs(t, err, expectedErr)
416
417 // we can still enqueue more logs after SendLoop returns
418 uut.Enqueue(ls1, Log{
419 CreatedAt: t0,
420 Output: "test log 2, src 1",
421 Level: codersdk.LogLevelTrace,
422 })
423 uut.L.Lock()
424 require.Len(t, uut.queues, 1)
425 uut.L.Unlock()
426}
427
428func TestLogSender_WaitUntilEmpty_ContextExpired(t *testing.T) {
429 t.Parallel()

Callers

nothing calls this directly

Calls 12

EnqueueMethod · 0.95
SendLoopMethod · 0.95
ContextFunction · 0.92
LoggerFunction · 0.92
NowFunction · 0.92
TryReceiveFunction · 0.92
newFakeLogDestFunction · 0.85
NewLogSenderFunction · 0.85
NewMethod · 0.65
LockMethod · 0.45
LenMethod · 0.45
UnlockMethod · 0.45

Tested by

no test coverage detected