github.com/Finschia/finschia-sdk@v0.48.1/server/test_helpers.go (about)

     1  package server
     2  
     3  import (
     4  	"fmt"
     5  	"net"
     6  
     7  	sdkerrors "github.com/Finschia/finschia-sdk/types/errors"
     8  )
     9  
    10  // Get a free address for a test ostracon server
    11  // protocol is either tcp, http, etc
    12  func FreeTCPAddr() (addr, port string, err error) {
    13  	l, err := net.Listen("tcp", "localhost:0")
    14  	if err != nil {
    15  		return "", "", err
    16  	}
    17  
    18  	if err := l.Close(); err != nil {
    19  		return "", "", sdkerrors.Wrap(err, "couldn't close the listener")
    20  	}
    21  
    22  	portI := l.Addr().(*net.TCPAddr).Port
    23  	port = fmt.Sprintf("%d", portI)
    24  	addr = fmt.Sprintf("tcp://0.0.0.0:%s", port)
    25  	return
    26  }