Back to godoc.org

Package storetest

v0.0.0-...-d4769a7
Latest Go to latest

The latest major version is .

Published: Aug 1, 2020 | License: Apache-2.0 | Module: github.com/luci/luci-go

Overview

Package storetest is imported exclusively by tests for Store implementations.

Index

func RunStoreImplementationTests

func RunStoreImplementationTests(t *testing.T, ctx context.Context, opts TestOptions)

RunStoreImplementationTests runs all the standard tests that all store implementations are expected to pass. When you write a new Store implementation you should ensure you run these tests against it.

type FakeMetric

type FakeMetric struct {
	types.MetricInfo
	types.MetricMetadata
}

FakeMetric is a fake Metric implementation.

func (*FakeMetric) Info

func (m *FakeMetric) Info() types.MetricInfo

Info implements Metric.Info

func (*FakeMetric) Metadata

func (m *FakeMetric) Metadata() types.MetricMetadata

Metadata implements Metric.Metadata

func (*FakeMetric) SetFixedResetTime

func (m *FakeMetric) SetFixedResetTime(t time.Time)

SetFixedResetTime implements Metric.SetFixedResetTime.

type Store

type Store interface {
	DefaultTarget() types.Target
	SetDefaultTarget(t types.Target)

	Get(c context.Context, m types.Metric, resetTime time.Time, fieldVals []interface{}) interface{}
	Set(c context.Context, m types.Metric, resetTime time.Time, fieldVals []interface{}, value interface{})
	Del(c context.Context, m types.Metric, fieldVals []interface{})
	Incr(c context.Context, m types.Metric, resetTime time.Time, fieldVals []interface{}, delta interface{})

	GetAll(c context.Context) []types.Cell

	Reset(c context.Context, m types.Metric)
}

Store is a store under test.

It is a copy of store.Store interface to break module dependency cycle.

type TestOptions

type TestOptions struct {
	// Factory creates and returns a new Store implementation.
	Factory func() Store

	// RegistrationFinished is called after all metrics have been registered.
	// Store implementations that need to do expensive initialization (that would
	// otherwise be done in iface.go) can do that here.
	RegistrationFinished func(Store)

	// GetNumRegisteredMetrics returns the number of metrics registered in the
	// store.
	GetNumRegisteredMetrics func(Store) int
}

TestOptions contains options for RunStoreImplementationTests.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier