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  }