...

Source file src/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go

Documentation: github.com/onsi/ginkgo/v2/internal/parallel_support

     1  package parallel_support
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  	"os"
     7  	"time"
     8  
     9  	"github.com/onsi/ginkgo/v2/reporters"
    10  	"github.com/onsi/ginkgo/v2/types"
    11  )
    12  
    13  type BeforeSuiteState struct {
    14  	Data  []byte
    15  	State types.SpecState
    16  }
    17  
    18  type ParallelIndexCounter struct {
    19  	Index int
    20  }
    21  
    22  var ErrorGone = fmt.Errorf("gone")
    23  var ErrorFailed = fmt.Errorf("failed")
    24  var ErrorEarly = fmt.Errorf("early")
    25  
    26  var POLLING_INTERVAL = 50 * time.Millisecond
    27  
    28  type Server interface {
    29  	Start()
    30  	Close()
    31  	Address() string
    32  	RegisterAlive(node int, alive func() bool)
    33  	GetSuiteDone() chan interface{}
    34  	GetOutputDestination() io.Writer
    35  	SetOutputDestination(io.Writer)
    36  }
    37  
    38  type Client interface {
    39  	Connect() bool
    40  	Close() error
    41  
    42  	PostSuiteWillBegin(report types.Report) error
    43  	PostDidRun(report types.SpecReport) error
    44  	PostSuiteDidEnd(report types.Report) error
    45  	PostReportBeforeSuiteCompleted(state types.SpecState) error
    46  	BlockUntilReportBeforeSuiteCompleted() (types.SpecState, error)
    47  	PostSynchronizedBeforeSuiteCompleted(state types.SpecState, data []byte) error
    48  	BlockUntilSynchronizedBeforeSuiteData() (types.SpecState, []byte, error)
    49  	BlockUntilNonprimaryProcsHaveFinished() error
    50  	BlockUntilAggregatedNonprimaryProcsReport() (types.Report, error)
    51  	FetchNextCounter() (int, error)
    52  	PostAbort() error
    53  	ShouldAbort() bool
    54  	PostEmitProgressReport(report types.ProgressReport) error
    55  	Write(p []byte) (int, error)
    56  }
    57  
    58  func NewServer(parallelTotal int, reporter reporters.Reporter) (Server, error) {
    59  	if os.Getenv("GINKGO_PARALLEL_PROTOCOL") == "HTTP" {
    60  		return newHttpServer(parallelTotal, reporter)
    61  	} else {
    62  		return newRPCServer(parallelTotal, reporter)
    63  	}
    64  }
    65  
    66  func NewClient(serverHost string) Client {
    67  	if os.Getenv("GINKGO_PARALLEL_PROTOCOL") == "HTTP" {
    68  		return newHttpClient(serverHost)
    69  	} else {
    70  		return newRPCClient(serverHost)
    71  	}
    72  }
    73  

View as plain text