(t *testing.T)
| 698 | } |
| 699 | |
| 700 | func TestWaitForTCPPortDelayedSuccess(t *testing.T) { |
| 701 | // Reserve a port and release it, then start server after delay |
| 702 | tmpListener, err := net.Listen("tcp", "127.0.0.1:0") |
| 703 | require.NoError(t, err) |
| 704 | port := tmpListener.Addr().(*net.TCPAddr).Port |
| 705 | tmpListener.Close() |
| 706 | |
| 707 | // Start server after delay |
| 708 | serverReady := make(chan struct{}) |
| 709 | go func() { |
| 710 | time.Sleep(300 * time.Millisecond) |
| 711 | listener, err := net.Listen("tcp", fmt.Sprintf("127.0.0.1:%d", port)) |
| 712 | if err != nil { |
| 713 | close(serverReady) |
| 714 | return |
| 715 | } |
| 716 | defer listener.Close() |
| 717 | close(serverReady) |
| 718 | // Keep listener alive for a bit |
| 719 | time.Sleep(500 * time.Millisecond) |
| 720 | }() |
| 721 | |
| 722 | <-serverReady |
| 723 | |
| 724 | ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) |
| 725 | defer cancel() |
| 726 | |
| 727 | err = WaitForTCPPort(ctx, "127.0.0.1", port, 2*time.Second) |
| 728 | require.NoError(t, err) |
| 729 | } |
| 730 | |
| 731 | func TestWaitForTCPPortRespectsContextDeadline(t *testing.T) { |
| 732 | ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond) |
nothing calls this directly
no test coverage detected