testutil

package
v0.0.0-...-48c65c4 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package testutil provides test utility functions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AfterTest

func AfterTest(t *testing.T)

func CheckLeakedGoroutine

func CheckLeakedGoroutine() bool

CheckLeakedGoroutine verifies tests do not leave any leaky goroutines. It returns true when there are goroutines still running(leaking) after all tests.

import "etcd/pkg/testutil"

func TestMain(m *testing.M) {
	v := m.Run()
	if v == 0 && testutil.CheckLeakedGoroutine() {
		os.Exit(1)
	}
	os.Exit(v)
}

func TestSample(t *testing.T) {
	defer testutil.AfterTest(t)
	...
}

func FatalStack

func FatalStack(t *testing.T, s string)

FatalStack helps to fatal the test and print out the stacks of all running goroutines.

func MustNewURL

func MustNewURL(t *testing.T, s string) *url.URL

func MustNewURLs

func MustNewURLs(t *testing.T, urls []string) []url.URL

func WaitSchedule

func WaitSchedule()

WaitSchedule briefly sleeps in order to invoke the go scheduler. TODO: improve this when we are able to know the schedule or status of target go-routine.

Types

type Action

type Action struct {
	Name   string
	Params []interface{}
}

type PauseableHandler

type PauseableHandler struct {
	Next http.Handler
	// contains filtered or unexported fields
}

func (*PauseableHandler) Pause

func (ph *PauseableHandler) Pause()

func (*PauseableHandler) Resume

func (ph *PauseableHandler) Resume()

func (*PauseableHandler) ServeHTTP

func (ph *PauseableHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)

type Recorder

type Recorder interface {
	// Record publishes an Action (e.g., function call) which will
	// be reflected by Wait() or Chan()
	Record(a Action)
	// Wait waits until at least n Actions are available or returns with error
	Wait(n int) ([]Action, error)
	// Action returns immediately available Actions
	Action() []Action
	// Chan returns the channel for actions published by Record
	Chan() <-chan Action
}

func NewRecorderStream

func NewRecorderStream() Recorder

type RecorderBuffered

type RecorderBuffered struct {
	sync.Mutex
	// contains filtered or unexported fields
}

RecorderBuffered appends all Actions to a slice

func (*RecorderBuffered) Action

func (r *RecorderBuffered) Action() []Action

func (*RecorderBuffered) Chan

func (r *RecorderBuffered) Chan() <-chan Action

func (*RecorderBuffered) Record

func (r *RecorderBuffered) Record(a Action)

func (*RecorderBuffered) Wait

func (r *RecorderBuffered) Wait(n int) (acts []Action, err error)

Jump to

Keyboard shortcuts

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