1// Copyright (c) The Thanos Authors. 2// Licensed under the Apache License 2.0. 3 4package e2eutil 5 6import "net" 7 8// FreePort returns port that is free now. 9func FreePort() (int, error) { 10 addr, err := net.ResolveTCPAddr("tcp", ":0") 11 if err != nil { 12 return 0, err 13 } 14 15 l, err := net.ListenTCP("tcp", addr) 16 if err != nil { 17 return 0, err 18 } 19 return l.Addr().(*net.TCPAddr).Port, l.Close() 20} 21