camlistore.org: camlistore.org/pkg/test Index | Files | Directories

package test

import "camlistore.org/pkg/test"

Package test provides common Camlistore test objects.

Index

Package Files

blob.go diff.go doc.go fetcher.go loader.go test.go testdep.go wait.go world.go

Variables

var ClockOrigin = time.Unix(1322443956, 123456)

ClockOrigin is an arbitrary contemporary date that can be used as a starting time in tests. It is 2011-11-28 01:32:36.000123456 +0000 UTC.

func BrokenTest Uses

func BrokenTest(t *testing.T)

BrokenTest marks the test as broken and calls t.Skip, unless the environment variable RUN_BROKEN_TESTS is set to 1 (or some other boolean true value).

func DependencyErrorOrSkip Uses

func DependencyErrorOrSkip(t *testing.T)

DependencyErrorOrSkip is called when a test's dependency isn't found. It either skips the current test (if SKIP_DEP_TESTS is set), or calls t.Error with an error.

func Diff Uses

func Diff(a, b []byte) string

Diff returns the unified diff (from running "diff -u") or returns an error string.

func MustRunCmd Uses

func MustRunCmd(t testing.TB, c *exec.Cmd) string

MustRunCmd wraps RunCmd, failing t if RunCmd returns an error.

func NewLogger Uses

func NewLogger(t *testing.T, prefix string, quietPhrases ...string) *log.Logger

NewLogger returns a logger that logs to t with the given prefix.

The optional quietPhrases are substrings to match in writes to determine whether those log messages are muted.

func RunCmd Uses

func RunCmd(c *exec.Cmd) (output string, err error)

RunCmd runs c (which is assumed to be something short-lived, like a camput or camget command), capturing its stdout for return, and also capturing its stderr, just in the case of errors. If there's an error, the return error fully describes the command and all output.

func TLog Uses

func TLog(t testing.TB) func()

TLog changes the log package's output to log to t and returns a function to reset it back to stderr.

func WaitFor Uses

func WaitFor(condition func() bool, maxWait, checkInterval time.Duration) bool

WaitFor returns true if condition returns true before maxWait. It is checked immediately, and then every checkInterval.

type Blob Uses

type Blob struct {
    Contents string // the contents of the blob
}

Blob is a utility class for unit tests.

func RandomBlob Uses

func RandomBlob(t *testing.T, size int64) *Blob

RandomBlob returns a random blob with the provided number of bytes.

func (*Blob) AssertMatches Uses

func (tb *Blob) AssertMatches(t *testing.T, sb blob.SizedRef)

func (*Blob) Blob Uses

func (tb *Blob) Blob() *blob.Blob

func (*Blob) BlobRef Uses

func (tb *Blob) BlobRef() blob.Ref

func (*Blob) BlobRefSlice Uses

func (tb *Blob) BlobRefSlice() []blob.Ref

func (*Blob) MustUpload Uses

func (tb *Blob) MustUpload(t *testing.T, ds blobserver.BlobReceiver)

func (*Blob) Reader Uses

func (tb *Blob) Reader() io.Reader

func (*Blob) Size Uses

func (tb *Blob) Size() uint32

func (*Blob) SizedRef Uses

func (tb *Blob) SizedRef() blob.SizedRef

type Fetcher Uses

type Fetcher struct {
    memory.Storage

    // ReceiveErr optionally returns the error to return on receive.
    ReceiveErr error

    // FetchErr, if non-nil, specifies the error to return on the next fetch call.
    // If it returns nil, fetches proceed as normal.
    FetchErr func() error
}

Fetcher is an in-memory implementation of the blobserver Storage interface. It started as just a fetcher and grew. It also includes other convenience methods for testing.

func (*Fetcher) AddBlob Uses

func (tf *Fetcher) AddBlob(b *Blob)

func (*Fetcher) Fetch Uses

func (tf *Fetcher) Fetch(ref blob.Ref) (file io.ReadCloser, size uint32, err error)

func (*Fetcher) ReceiveBlob Uses

func (tf *Fetcher) ReceiveBlob(br blob.Ref, source io.Reader) (blob.SizedRef, error)

func (*Fetcher) SubFetch Uses

func (tf *Fetcher) SubFetch(ref blob.Ref, offset, length int64) (io.ReadCloser, error)

type Loader Uses

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

func NewLoader Uses

func NewLoader() *Loader

NewLoader

func (*Loader) AllHandlers Uses

func (ld *Loader) AllHandlers() (map[string]string, map[string]interface{})

func (*Loader) BaseURL Uses

func (ld *Loader) BaseURL() string

func (*Loader) FindHandlerByType Uses

func (ld *Loader) FindHandlerByType(handlerType string) (prefix string, handler interface{}, err error)

func (*Loader) GetHandler Uses

func (ld *Loader) GetHandler(prefix string) (interface{}, error)

func (*Loader) GetHandlerType Uses

func (ld *Loader) GetHandlerType(prefix string) string

func (*Loader) GetStorage Uses

func (ld *Loader) GetStorage(prefix string) (blobserver.Storage, error)

func (*Loader) MyPrefix Uses

func (ld *Loader) MyPrefix() string

func (*Loader) SetStorage Uses

func (ld *Loader) SetStorage(prefix string, s blobserver.Storage)

type World Uses

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

World defines an integration test world.

It's used to run the actual Camlistore binaries (camlistored, camput, camget, camtool, etc) together in large tests, including building them, finding them, and wiring them up in an isolated way.

func GetWorld Uses

func GetWorld(t *testing.T) *World

GetWorld returns (creating if necessary) a test singleton world. It calls Fatal on the provided test if there are problems.

func GetWorldMaybe Uses

func GetWorldMaybe(t *testing.T) *World

GetWorldMaybe returns the current World. It might be nil.

func NewWorld Uses

func NewWorld() (*World, error)

NewWorld returns a new test world. It requires that GOPATH is set to find the "camlistore.org" root.

func WorldFromConfig Uses

func WorldFromConfig(cfg string) (*World, error)

WorldFromConfig returns a new test world based on the given configuration file. This cfg is the server config relative to pkg/test/testdata. It requires that GOPATH is set to find the "camlistore.org" root.

func (*World) Addr Uses

func (w *World) Addr() string

func (*World) Build Uses

func (w *World) Build() error

Build builds the Camlistore binaries.

func (*World) CamliSourceRoot Uses

func (w *World) CamliSourceRoot() string

CamliSourceRoot returns the root of the source tree.

func (*World) ClientIdentity Uses

func (w *World) ClientIdentity() string

ClientIdentity returns the GPG identity to use in World tests, suitable for setting in CAMLI_KEYID.

func (*World) Cmd Uses

func (w *World) Cmd(binary string, args ...string) *exec.Cmd

func (*World) CmdWithEnv Uses

func (w *World) CmdWithEnv(binary string, env []string, args ...string) *exec.Cmd

func (*World) Help Uses

func (w *World) Help() ([]byte, error)

Help outputs the help of camlistored from the World.

func (*World) NewPermanode Uses

func (w *World) NewPermanode(t *testing.T) blob.Ref

func (*World) Ping Uses

func (w *World) Ping() error

Ping returns an error if the world's camlistored is not running.

func (*World) SearchHandlerPath Uses

func (w *World) SearchHandlerPath() string

SearchHandlerPath returns the path to the search handler, with trailing slash.

func (*World) SecretRingFile Uses

func (w *World) SecretRingFile() string

SecretRingFile returns the GnuPG secret ring, suitable for setting in CAMLI_SECRET_RING.

func (*World) ServerBaseURL Uses

func (w *World) ServerBaseURL() string

func (*World) ServerBinary Uses

func (w *World) ServerBinary() string

ServerBinary returns the location of the camlistored binary running for this World.

func (*World) Start Uses

func (w *World) Start() error

Start builds the Camlistore binaries and starts a server.

func (*World) Stop Uses

func (w *World) Stop()

Directories

PathSynopsis
assertsPackage asserts provides a bad implementation of test predicate helpers.
dockertestPackage dockertest contains helper functions for setting up and tearing down docker containers to aid in testing.
integration

Package test imports 25 packages (graph) and is imported by 82 packages. Updated 2018-02-25. Refresh now. Tools for package owners.