(t *testing.T)
| 404 | } |
| 405 | |
| 406 | func TestServer_CloseStopsForwarder(t *testing.T) { |
| 407 | t.Parallel() |
| 408 | |
| 409 | socketPath := filepath.Join(testutil.TempDirUnixSocket(t), "boundary.sock") |
| 410 | srv := boundarylogproxy.NewServer(testutil.Logger(t), socketPath, prometheus.NewRegistry()) |
| 411 | |
| 412 | err := srv.Start() |
| 413 | require.NoError(t, err) |
| 414 | t.Cleanup(func() { require.NoError(t, srv.Close()) }) |
| 415 | |
| 416 | reporter := &fakeReporter{} |
| 417 | |
| 418 | forwarderCtx, forwarderCancel := context.WithCancel(context.Background()) |
| 419 | forwarderDone := make(chan error, 1) |
| 420 | go func() { |
| 421 | forwarderDone <- srv.RunForwarder(forwarderCtx, reporter) |
| 422 | }() |
| 423 | |
| 424 | // Cancel the forwarder context and verify it stops. |
| 425 | forwarderCancel() |
| 426 | |
| 427 | select { |
| 428 | case err := <-forwarderDone: |
| 429 | require.ErrorIs(t, err, context.Canceled) |
| 430 | case <-time.After(testutil.WaitShort): |
| 431 | t.Fatal("forwarder did not stop") |
| 432 | } |
| 433 | } |
| 434 | |
| 435 | func TestServer_InvalidProtobuf(t *testing.T) { |
| 436 | t.Parallel() |
nothing calls this directly
no test coverage detected