code: func WaitForListen(u *url.URL, timeout time.Duration) error {
  	timedout := time.After(timeout)
  
  	b := backoff.Backoff{
  		Min:    100 * time.Millisecond,
  		Max:    time.Second,
  		Factor: 1.5,
  	}
  
  	for {
  		select {
  		case <-timedout:
  			return errors.Errorf("timed out after %s", timeout)
  		case <-time.After(b.Duration()):
  			if IsListening(u) {
  				return nil
  			}
  		}
  	}
  }
docs: // WaitForListen blocks until `u` is listening with timeout.