...

Package ztest

import "go.uber.org/zap/internal/ztest"
Overview
Index

Overview ▾

Package ztest provides low-level helpers for testing log output. These utilities are helpful in zap's own unit tests, but any assertions using them are strongly coupled to a single encoding.

func Initialize

func Initialize(factor string) func()

Initialize checks the environment and alters the timeout scale accordingly. It returns a function to undo the scaling.

func Sleep

func Sleep(base time.Duration)

Sleep scales the sleep duration by $TEST_TIMEOUT_SCALE.

func Timeout

func Timeout(base time.Duration) time.Duration

Timeout scales the provided duration by $TEST_TIMEOUT_SCALE.

type Buffer

Buffer is an implementation of zapcore.WriteSyncer that sends all writes to a bytes.Buffer. It has convenience methods to split the accumulated buffer on newlines.

type Buffer struct {
    bytes.Buffer
    Syncer
}

func (*Buffer) Lines

func (b *Buffer) Lines() []string

Lines returns the current buffer contents, split on newlines.

func (*Buffer) Stripped

func (b *Buffer) Stripped() string

Stripped returns the current buffer contents with the last trailing newline stripped.

type Discarder

A Discarder sends all writes to io.Discard.

type Discarder struct{ Syncer }

func (*Discarder) Write

func (d *Discarder) Write(b []byte) (int, error)

Write implements io.Writer.

type FailWriter

FailWriter is a WriteSyncer that always returns an error on writes.

type FailWriter struct{ Syncer }

func (FailWriter) Write

func (w FailWriter) Write(b []byte) (int, error)

Write implements io.Writer.

type MockClock

MockClock is a fake source of time. It implements standard time operations, but allows the user to control the passage of time.

Use the [Add] method to progress time.

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

func NewMockClock

func NewMockClock() *MockClock

NewMockClock builds a new mock clock using the current actual time as the initial time.

func (*MockClock) Add

func (c *MockClock) Add(d time.Duration)

Add progresses time by the given duration. Other operations waiting for the time to advance will be resolved if they are within range.

Side effects of operations waiting for the time to advance will take effect on a best-effort basis. Avoid racing with operations that have side effects.

Panics if the duration is negative.

func (*MockClock) NewTicker

func (c *MockClock) NewTicker(d time.Duration) *time.Ticker

NewTicker returns a time.Ticker that ticks at the specified frequency.

As with time.NewTicker, the ticker will drop ticks if the receiver is slow, and the channel is never closed.

Calling Stop on the returned ticker is a no-op. The ticker only runs when the clock is advanced.

func (*MockClock) Now

func (c *MockClock) Now() time.Time

Now reports the current time.

type ShortWriter

ShortWriter is a WriteSyncer whose write method never fails, but nevertheless fails to the last byte of the input.

type ShortWriter struct{ Syncer }

func (ShortWriter) Write

func (w ShortWriter) Write(b []byte) (int, error)

Write implements io.Writer.

type Syncer

A Syncer is a spy for the Sync portion of zapcore.WriteSyncer.

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

func (*Syncer) Called

func (s *Syncer) Called() bool

Called reports whether the Sync method was called.

func (*Syncer) SetError

func (s *Syncer) SetError(err error)

SetError sets the error that the Sync method will return.

func (*Syncer) Sync

func (s *Syncer) Sync() error

Sync records that it was called, then returns the user-supplied error (if any).