1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package test
- import (
- "net"
- "strconv"
- "testing"
- "time"
- )
- // WaitForPortUp waits up to 7s for a port to come up and fails t if that fails
- func WaitForPortUp(t *testing.T, port int) {
- success := false
- for i := 0; i < 500; i++ {
- startTime := time.Now()
- conn, _ := net.DialTimeout("tcp", net.JoinHostPort("127.0.0.1", strconv.Itoa(port)), 10*time.Millisecond)
- if conn != nil {
- success = true
- conn.Close()
- break
- }
- if time.Since(startTime) < 10*time.Millisecond {
- time.Sleep(10*time.Millisecond - time.Since(startTime))
- }
- }
- if !success {
- t.Fatalf("Failed waiting for port %d to be UP", port)
- }
- }
- // WaitForPortDown waits up to 5s for a port to come down and fails t if that fails
- func WaitForPortDown(t *testing.T, port int) {
- success := false
- for i := 0; i < 100; i++ {
- conn, _ := net.DialTimeout("tcp", net.JoinHostPort("", strconv.Itoa(port)), 50*time.Millisecond)
- if conn == nil {
- success = true
- break
- }
- conn.Close()
- }
- if !success {
- t.Fatalf("Failed waiting for port %d to be DOWN", port)
- }
- }
|