github.com/palisadeinc/bor@v0.0.0-20230615125219-ab7196213d15/internal/cli/server/helper.go (about) 1 package server 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/ethereum/go-ethereum/common/network" 8 ) 9 10 func CreateMockServer(config *Config) (*Server, error) { 11 if config == nil { 12 config = DefaultConfig() 13 } 14 15 // get grpc port and listener 16 grpcPort, gRPCListener, err := network.FindAvailablePort() 17 if err != nil { 18 return nil, err 19 } 20 21 // The test uses grpc port from config so setting it here. 22 config.GRPC.Addr = fmt.Sprintf(":%d", grpcPort) 23 24 // datadir 25 datadir, err := os.MkdirTemp("", "bor-cli-test") 26 if err != nil { 27 return nil, err 28 } 29 30 config.DataDir = datadir 31 config.JsonRPC.Http.Port = 0 // It will choose a free/available port 32 33 // start the server 34 return NewServer(config, WithGRPCListener(gRPCListener)) 35 } 36 37 func CloseMockServer(server *Server) { 38 // remove the contents of temp data dir 39 os.RemoveAll(server.config.DataDir) 40 41 // close the server 42 server.Stop() 43 }