Version: v0.0.0-...-24d4c76 Latest Latest

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

Go to latest
Published: Oct 16, 2018 License: BSD-3-Clause Imports: 9 Imported by: 0



Package testutil provides easy ways to generate some random or deterministic data that can be use for tests or benchmarks.

All the publicly shared trace agent model is available.

It avoids the cumbersome step of having to redefine complicated structs in every test case and maintain common methods for quick access to almost all kind of stub data needed. It should NEVER be imported in a program, most likely in one-off projects or fuzz modes or test suites.



This section is empty.


View Source
var TestDistroValues = []int64{}/* 1000 elements not displayed */

TestDistroValues is a pre-defined list of values

View Source
var YearNS = time.Duration(time.Hour * 24 * 365).Nanoseconds()

YearNS is the number of nanoseconds in a year


func GetTestSpan

func GetTestSpan() *model.Span

GetTestSpan returns a Span with different fields set

func GetTestTrace

func GetTestTrace(traceN, size int, realisticIDs bool) model.Traces

GetTestTrace returns a []Trace that is composed by “traceN“ number of traces, each one composed by “size“ number of spans.

func RandomServices

func RandomServices(maxServices, maxTags int) model.ServicesMetadata

RandomServices generates random services metadata

func RandomSizedBytes

func RandomSizedBytes(size int) []byte

RandomSizedBytes creates a random byte slice with the specified size.

func RandomSpan

func RandomSpan() *model.Span

RandomSpan generates a wide-variety of spans, useful to test robustness & performance

func RandomSpanDuration

func RandomSpanDuration() int64

RandomSpanDuration generates a random span duration

func RandomSpanError

func RandomSpanError() int32

RandomSpanError generates a random span error code

func RandomSpanID

func RandomSpanID() uint64

RandomSpanID generates a random span ID

func RandomSpanMeta

func RandomSpanMeta() map[string]string

RandomSpanMeta generates some random span metadata

func RandomSpanMetrics

func RandomSpanMetrics() map[string]float64

RandomSpanMetrics generates some random span metrics

func RandomSpanName

func RandomSpanName() string

RandomSpanName generates a random span name string

func RandomSpanParentID

func RandomSpanParentID() uint64

RandomSpanParentID generates a random span parent ID

func RandomSpanResource

func RandomSpanResource() string

RandomSpanResource generates a random span resource string

func RandomSpanService

func RandomSpanService() string

RandomSpanService generates a random span service string

func RandomSpanStart

func RandomSpanStart() int64

RandomSpanStart generates a span start timestamp

func RandomSpanTraceID

func RandomSpanTraceID() uint64

RandomSpanTraceID generates a random trace ID

func RandomSpanType

func RandomSpanType() string

RandomSpanType generates a random span type

func RandomStatsBucket

func RandomStatsBucket(n int) model.StatsBucket

RandomStatsBucket returns a bucket made from n random spans, useful to run benchmarks and tests

func RandomStringMap

func RandomStringMap() map[string]string

RandomStringMap creates a random map with string keys and values.

func RandomTrace

func RandomTrace(maxLevels, maxSpans int) model.Trace

RandomTrace generates a random trace with a depth from 1 to maxLevels of spans. Each level has at most maxSpans items.

func RandomWeightedSpan

func RandomWeightedSpan() *model.WeightedSpan

RandomWeightedSpan generates a random weighted span, useful for stats tests

func StatsBucketWithSpans

func StatsBucketWithSpans(spans []*model.WeightedSpan) model.StatsBucket

StatsBucketWithSpans returns a stats bucket populated with spans stats

func TestDistribution

func TestDistribution() model.Distribution

TestDistribution returns a distribution with pre-defined values

func TestSpan

func TestSpan() *model.Span

TestSpan returns a fix span with hardcoded info, useful for reproducible tests

func TestStatsBucket

func TestStatsBucket() model.StatsBucket

TestStatsBucket returns a fixed stats bucket to be used in unit tests

func TestWeightedSpan

func TestWeightedSpan() *model.WeightedSpan

TestWeightedSpan returns a static test weighted span for reproductive stats tests


type CountSummary

type CountSummary struct {
	Calls []StatsClientCountArgs
	Sum   int64

CountSummary contains a summary of all Count method calls to a particular StatsClient for a particular key.

type GaugeSummary

type GaugeSummary struct {
	Calls []StatsClientGaugeArgs
	Last  float64
	Max   float64

GaugeSummary contains a summary of all Gauge method calls to a particular StatsClient for a particular key.

type StatsClientCountArgs

type StatsClientCountArgs struct {
	Name  string
	Value int64
	Tags  []string
	Rate  float64

StatsClientCountArgs represents arguments to a StatsClient Count method call.

type StatsClientGaugeArgs

type StatsClientGaugeArgs struct {
	Name  string
	Value float64
	Tags  []string
	Rate  float64

StatsClientGaugeArgs represents arguments to a StatsClient Gauge method call.

type StatsClientHistogramArgs

type StatsClientHistogramArgs struct {
	Name  string
	Value float64
	Tags  []string
	Rate  float64

StatsClientHistogramArgs represents arguments to a StatsClient Histogram method call.

type TestBackoffTimer

type TestBackoffTimer struct {
	// contains filtered or unexported fields

TestBackoffTimer is a backoff timer that ticks on-demand.

func NewTestBackoffTimer

func NewTestBackoffTimer() *TestBackoffTimer

NewTestBackoffTimer creates a new instance of a TestBackoffTimer.

func (*TestBackoffTimer) Close

func (t *TestBackoffTimer) Close()

Close closes the ticking channel of this backoff timer.

func (*TestBackoffTimer) CurrentDelay

func (t *TestBackoffTimer) CurrentDelay() time.Duration

CurrentDelay in a TestBackoffTimer always returns 0.

func (*TestBackoffTimer) NumRetries

func (t *TestBackoffTimer) NumRetries() int

NumRetries in a TestBackoffTimer always returns 0.

func (*TestBackoffTimer) ReceiveTick

func (t *TestBackoffTimer) ReceiveTick() <-chan time.Time

ReceiveTick returns the channel where ticks are sent.

func (*TestBackoffTimer) Reset

func (t *TestBackoffTimer) Reset()

Reset in a TestBackoffTimer is a no-op.

func (*TestBackoffTimer) ScheduleRetry

func (t *TestBackoffTimer) ScheduleRetry(err error) (int, time.Duration)

ScheduleRetry on a TestBackoffTimer is a no-op.

func (*TestBackoffTimer) Stop

func (t *TestBackoffTimer) Stop()

Stop in a TestBackoffTimer is a no-op.

func (*TestBackoffTimer) TriggerTick

func (t *TestBackoffTimer) TriggerTick()

TriggerTick immediately sends a tick with the current timestamp through the ticking channel.

type TestStatsClient

type TestStatsClient struct {
	GaugeErr   error
	GaugeCalls []StatsClientGaugeArgs

	CountErr   error
	CountCalls []StatsClientCountArgs

	HistogramErr   error
	HistogramCalls []StatsClientHistogramArgs
	// contains filtered or unexported fields

TestStatsClient is a mocked StatsClient that records all calls and replies with configurable error return values.

func (*TestStatsClient) Count

func (c *TestStatsClient) Count(name string, value int64, tags []string, rate float64) error

Count records a call to a Count operation and replies with CountErr

func (*TestStatsClient) Gauge

func (c *TestStatsClient) Gauge(name string, value float64, tags []string, rate float64) error

Gauge records a call to a Gauge operation and replies with GaugeErr

func (*TestStatsClient) GetCountSummaries

func (c *TestStatsClient) GetCountSummaries() map[string]*CountSummary

GetCountSummaries computes summaries for all names supplied as parameters to Count calls.

func (*TestStatsClient) GetGaugeSummaries

func (c *TestStatsClient) GetGaugeSummaries() map[string]*GaugeSummary

GetGaugeSummaries computes summaries for all names supplied as parameters to Gauge calls.

func (*TestStatsClient) Histogram

func (c *TestStatsClient) Histogram(name string, value float64, tags []string, rate float64) error

Histogram records a call to a Histogram operation and replies with HistogramErr

Jump to

Keyboard shortcuts

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