executor

package
v0.0.0-...-ed06964 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2023 License: MIT Imports: 42 Imported by: 0

Documentation

Index

Constants

View Source
const (
	JobCountHeader string = "X-Tracetest-Job-Count"
)
View Source
const PollingRequestStartIteration = 1

Variables

This section is empty.

Functions

func HandleRunCancelation

func HandleRunCancelation(updater RunUpdater, tracer trace.Tracer, eventEmitter EventEmitter) runCancelHandlerFn

func NewAssertionRunner

func NewAssertionRunner(
	updater RunUpdater,
	assertionExecutor AssertionExecutor,
	op OutputsProcessorFn,
	subscriptionManager *subscription.Manager,
	eventEmitter EventEmitter,
) *defaultAssertionRunner

func NewLinterRunner

func NewLinterRunner(
	updater RunUpdater,
	subscriptionManager *subscription.Manager,
	eventEmitter EventEmitter,
	analyzerGetter AnalyzerGetter,
) *defaultLinterRunner

func NewQueueConfigurer

func NewQueueConfigurer() *queueConfigurer[Job]

func NewSelectorBasedPoller

func NewSelectorBasedPoller(innerPoller pollerExecutor, eventEmitter EventEmitter) selectorBasedPollerExecutor

func NewTestSuiteRunner

func NewTestSuiteRunner(
	testRunner testRunner,
	transactionRuns testSuiteRunRepository,
	subscriptionManager *subscription.Manager,
) *persistentTransactionRunner

func NewTracePoller

func NewTracePoller(
	pe pollerExecutor,
	updater RunUpdater,
	subscriptionManager *subscription.Manager,
	eventEmitter EventEmitter,
) *tracePoller

func NewTriggerExecuterWorker

func NewTriggerExecuterWorker(
	triggers *triggerer.Registry,
	updater RunUpdater,
	tracer trace.Tracer,
	eventEmitter EventEmitter,
	enabled bool,
) *triggerExecuterWorker

func NewTriggerResolverWorker

func NewTriggerResolverWorker(
	triggers *triggerer.Registry,
	updater RunUpdater,
	tracer trace.Tracer,
	newTraceDBFn tracedb.FactoryFunc,
	dsRepo currentDataStoreGetter,
	eventEmitter EventEmitter,
) *triggerResolverWorker

func NewTriggerResultProcessorWorker

func NewTriggerResultProcessorWorker(
	tracer trace.Tracer,
	subscriptionManager *subscription.Manager,
	eventEmitter EventEmitter,
	updater RunUpdater,
) *triggerResultProcessorWorker

Types

type AnalyzerGetter

type AnalyzerGetter interface {
	GetDefault(ctx context.Context) analyzer.Linter
}

type AssertionExecutor

type AssertionExecutor interface {
	Assert(context.Context, test.Specs, traces.Trace, []expression.DataStore) (maps.Ordered[test.SpanQuery, []test.AssertionResult], bool)
}

func NewAssertionExecutor

func NewAssertionExecutor(tracer trace.Tracer) AssertionExecutor

type CompositeTransactionUpdater

type CompositeTransactionUpdater struct {
	// contains filtered or unexported fields
}

func (CompositeTransactionUpdater) Add

func (CompositeTransactionUpdater) Update

type CompositeUpdater

type CompositeUpdater struct {
	// contains filtered or unexported fields
}

func (CompositeUpdater) Add

func (CompositeUpdater) Update

func (u CompositeUpdater) Update(ctx context.Context, run test.Run) error

type DefaultPollerExecutor

type DefaultPollerExecutor struct {
	// contains filtered or unexported fields
}

func (DefaultPollerExecutor) ExecuteRequest

func (pe DefaultPollerExecutor) ExecuteRequest(ctx context.Context, job *Job) (PollResult, error)

type EventEmitter

type EventEmitter interface {
	Emit(ctx context.Context, event model.TestRunEvent) error
}

func NewEventEmitter

func NewEventEmitter(repository model.TestRunEventRepository, publisher publisher) EventEmitter

type InstrumentedPollerExecutor

type InstrumentedPollerExecutor struct {
	// contains filtered or unexported fields
}

func NewPollerExecutor

func NewPollerExecutor(
	tracer trace.Tracer,
	updater RunUpdater,
	newTraceDBFn tracedb.FactoryFunc,
	dsRepo resourcemanager.Current[datastore.DataStore],
	eventEmitter EventEmitter,
) *InstrumentedPollerExecutor

func (InstrumentedPollerExecutor) ExecuteRequest

func (pe InstrumentedPollerExecutor) ExecuteRequest(ctx context.Context, job *Job) (PollResult, error)

type Job

type Job struct {
	Headers *headers

	TestSuite    testsuite.TestSuite
	TestSuiteRun testsuite.TestSuiteRun

	Test test.Test
	Run  test.Run

	PollingProfile pollingprofile.PollingProfile
	DataStore      datastore.DataStore
}

func NewJob

func NewJob() Job

func (Job) EnqueueCount

func (j Job) EnqueueCount() int

func (*Job) IncreaseEnqueueCount

func (j *Job) IncreaseEnqueueCount()

func (Job) MarshalJSON

func (job Job) MarshalJSON() ([]byte, error)

func (*Job) UnmarshalJSON

func (job *Job) UnmarshalJSON(data []byte) error

type JsonJob

type JsonJob struct {
	Headers          *headers `json:"headers"`
	TestSuiteID      string   `json:"test_suite_id"`
	TestSuiteRunID   int      `json:"test_suite_run_id"`
	TestID           string   `json:"test_id"`
	TestVersion      int      `json:"test_version"`
	RunID            int      `json:"run_id"`
	TraceID          string   `json:"trace_id"`
	PollingProfileID string   `json:"polling_profile_id"`
	DataStoreID      string   `json:"data_store_id"`
}

type OutputsProcessorFn

func InstrumentedOutputProcessor

func InstrumentedOutputProcessor(tracer trace.Tracer) OutputsProcessorFn

type PersistentTracePoller

type PersistentTracePoller interface {
	TracePoller
	WorkerPool
}

type PollResult

type PollResult struct {
	// contains filtered or unexported fields
}

func NewPollResult

func NewPollResult(finished bool, reason string, run test.Run) PollResult

func (PollResult) Finished

func (pr PollResult) Finished() bool

func (PollResult) Reason

func (pr PollResult) Reason() string

func (PollResult) Run

func (pr PollResult) Run() test.Run

type Queue

type Queue struct {
	// contains filtered or unexported fields
}

type RunResult

type RunResult struct {
	Run test.Run
	Err error
}

type RunUpdater

type RunUpdater interface {
	Update(context.Context, test.Run) error
}

func NewDBUpdater

func NewDBUpdater(repo runDBUpdater) RunUpdater

func NewSubscriptionUpdater

func NewSubscriptionUpdater(manager *subscription.Manager) RunUpdater

type StopRequest

type StopRequest struct {
	TestID id.ID
	RunID  int
}

func (StopRequest) ResourceID

func (sr StopRequest) ResourceID() string

type TestPipeline

type TestPipeline struct {
	*pipeline.Pipeline[Job]
	// contains filtered or unexported fields
}

func NewTestPipeline

func NewTestPipeline(
	pipeline *pipeline.Pipeline[Job],

	updatePublisher updatePublisher,

	assertionQueue pipeline.Enqueuer[Job],
	runs runsRepo,
	trGetter testRunnerGetter,
	ppGetter defaultPollingProfileGetter,
	dsGetter currentDataStoreGetter,
) *TestPipeline

func (*TestPipeline) Rerun

func (p *TestPipeline) Rerun(ctx context.Context, testObj test.Test, runID int) test.Run

func (*TestPipeline) Run

func (p *TestPipeline) Run(ctx context.Context, testObj test.Test, metadata test.RunMetadata, variableSet variableset.VariableSet, requiredGates *[]testrunner.RequiredGate) test.Run

func (*TestPipeline) StopTest

func (p *TestPipeline) StopTest(ctx context.Context, testID id.ID, runID int)

type TestSuiteRunUpdater

type TestSuiteRunUpdater interface {
	Update(context.Context, testsuite.TestSuiteRun) error
}

func NewDBTranasctionUpdater

func NewDBTranasctionUpdater(repo transactionUpdater) TestSuiteRunUpdater

func NewSubscriptionTransactionUpdater

func NewSubscriptionTransactionUpdater(manager *subscription.Manager) TestSuiteRunUpdater

type TestSuitesPipeline

type TestSuitesPipeline struct {
	*pipeline.Pipeline[Job]
	// contains filtered or unexported fields
}

func NewTestSuitePipeline

func NewTestSuitePipeline(
	pipeline *pipeline.Pipeline[Job],
	runs testSuiteRunRepo,
) *TestSuitesPipeline

func (*TestSuitesPipeline) Run

type TraceFetcher

type TraceFetcher interface {
	GetTraceByID(ctx context.Context, traceID string) (*v1.TracesData, error)
}

type TracePoller

type TracePoller interface {
	Poll(context.Context, test.Test, test.Run, pollingprofile.PollingProfile)
}

type WorkerMiddlewareBuilder

type WorkerMiddlewareBuilder interface {
	New(name string, next pipeline.StepProcessor[Job]) pipeline.StepProcessor[Job]
}

func NewWorkerMetricMiddlewareBuilder

func NewWorkerMetricMiddlewareBuilder(meter metric.Meter) WorkerMiddlewareBuilder

type WorkerPool

type WorkerPool interface {
	Start(workers int)
	Stop()
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL