blobtesting

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2019 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package blobtesting is used for testing BLOB storage implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssertConnectionInfoRoundTrips

func AssertConnectionInfoRoundTrips(ctx context.Context, t *testing.T, s blob.Storage)

AssertConnectionInfoRoundTrips verifies that the ConnectionInfo returned by a given storage can be used to create equivalent storage

func AssertGetBlob

func AssertGetBlob(ctx context.Context, t *testing.T, s blob.Storage, blobID blob.ID, expected []byte)

AssertGetBlob asserts that the specified BLOB has correct content.

func AssertGetBlobNotFound

func AssertGetBlobNotFound(ctx context.Context, t *testing.T, s blob.Storage, blobID blob.ID)

AssertGetBlobNotFound asserts that GetBlob() for specified blobID returns ErrNotFound.

func AssertInvalidOffsetLength

func AssertInvalidOffsetLength(ctx context.Context, t *testing.T, s blob.Storage, blobID blob.ID, offset, length int64)

AssertInvalidOffsetLength verifies that the given combination of (offset,length) fails on GetBlob()

func AssertListResults

func AssertListResults(ctx context.Context, t *testing.T, s blob.Storage, prefix blob.ID, want ...blob.ID)

AssertListResults asserts that the list results with given prefix return the specified list of names in order.

func NewMapStorage

func NewMapStorage(data DataMap, keyTime map[blob.ID]time.Time, timeNow func() time.Time) blob.Storage

NewMapStorage returns an implementation of Storage backed by the contents of given map. Used primarily for testing.

func VerifyStorage

func VerifyStorage(ctx context.Context, t *testing.T, r blob.Storage)

VerifyStorage verifies the behavior of the specified storage.

Types

type DataMap

type DataMap map[blob.ID][]byte

type Fault

type Fault struct {
	Repeat      int           // how many times to repeat this fault
	Sleep       time.Duration // sleep before returning
	ErrCallback func() error
	WaitFor     chan struct{} // waits until the given channel is closed before returning
	Err         error         // error to return (can be nil in combination with Sleep and WaitFor)
}

Fault describes the behavior of a single fault.

type FaultyStorage

type FaultyStorage struct {
	Base   blob.Storage
	Faults map[string][]*Fault
	// contains filtered or unexported fields
}

FaultyStorage implements fault injection for Storage.

func (*FaultyStorage) Close

func (s *FaultyStorage) Close(ctx context.Context) error

Close implements blob.Storage

func (*FaultyStorage) ConnectionInfo

func (s *FaultyStorage) ConnectionInfo() blob.ConnectionInfo

ConnectionInfo implements blob.Storage

func (*FaultyStorage) DeleteBlob

func (s *FaultyStorage) DeleteBlob(ctx context.Context, id blob.ID) error

DeleteBlob implements blob.Storage

func (*FaultyStorage) GetBlob

func (s *FaultyStorage) GetBlob(ctx context.Context, id blob.ID, offset, length int64) ([]byte, error)

GetBlob implements blob.Storage

func (*FaultyStorage) ListBlobs

func (s *FaultyStorage) ListBlobs(ctx context.Context, prefix blob.ID, callback func(blob.Metadata) error) error

ListBlobs implements blob.Storage

func (*FaultyStorage) PutBlob

func (s *FaultyStorage) PutBlob(ctx context.Context, id blob.ID, data []byte) error

PutBlob implements blob.Storage

Jump to

Keyboard shortcuts

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