testutils

package
v0.8.7 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2023 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CaptureLog

func CaptureLog(t *testing.T, l *logrus.Logger)

CaptureLog redirects logrus output to testing.Log

func DoneWithExportFile

func DoneWithExportFile(t *testing.T) error

DoneWithExportFile: marks the export file to be deleted It is the tester's responsibility to call this function

func GetExportFilename

func GetExportFilename(t *testing.T) (string, error)

GetExportFilename return export filename for test

func GetSpecFromTemplate

func GetSpecFromTemplate(
	tmplname string,
	data interface{},
) (string, error)

GetSpecFromTemplate creates a file bsed on the given template

func GetTgRuntimeConf

func GetTgRuntimeConf() (*confmap.TetragonConfValue, error)

func MockPipedFile

func MockPipedFile(t *testing.T, filename string)

MockPipedFile mocks the file being piped into stdin, similarly as what you can do with `cat file | cmd`. It restores the original os.Stdin in t.Cleanup. It's using a goroutine to copy the file content to the writer of the pipe.

func ReadTgRuntimeConf

func ReadTgRuntimeConf(mapDir string) (*confmap.TetragonConfValue, error)

func RedirectStdoutExecuteCmd

func RedirectStdoutExecuteCmd(t *testing.T, cmd *cobra.Command) []byte

RedirectStdoutExecuteCmd redirects stdout, executes the command and returns the result of the command.

func RepoRootPath

func RepoRootPath(fname string) string

RepoRootPath retrieves the repository root path (useful to find scripts and other files)

func UpdateTgRuntimeConf

func UpdateTgRuntimeConf(mapDir string, v *confmap.TetragonConfValue) error

Test `tg_conf_map` BPF MAP with explicit values

Types

type CmdBufferedPipes

type CmdBufferedPipes struct {
	P                  *CmdPipes
	StdoutRd, StderrRd *bufio.Reader
}

CmdBufferedPipes wraps stdout and stderr in a bufio.Reader

func NewCmdBufferedPipes

func NewCmdBufferedPipes(cmd *exec.Cmd) (*CmdBufferedPipes, error)

func (*CmdBufferedPipes) Close

func (cbp *CmdBufferedPipes) Close()

func (*CmdBufferedPipes) ParseAndLogCmdOutput

func (cbp *CmdBufferedPipes) ParseAndLogCmdOutput(
	t *testing.T,
	parseOut LineParser,
	parseErr LineParser,
) *sync.WaitGroup

ParseAndLogCmdOutput will log command output using t.Log, and also call the lineparser functions for each line. This will happen in two goroutines. It returns a waitgroup for them finishing.

type CmdPipes

type CmdPipes struct {
	Stdout, Stderr io.ReadCloser
	Stdin          io.WriteCloser
}

CmdPipes maintains pipes for stdout, stderr, and stdin

func NewCmdPipes

func NewCmdPipes(cmd *exec.Cmd) (*CmdPipes, error)

NewCmdPipes returns a new CmdPipes

func (*CmdPipes) Close

func (cp *CmdPipes) Close()

Close closes all the pipes

type ExportFile

type ExportFile struct {
	*os.File
	// contains filtered or unexported fields
}

func CreateExportFile

func CreateExportFile(t *testing.T) (*ExportFile, error)

CreateExportFile creates an export file for a test. It returns an ExportFile that has a .Close() method, that will be called by the observer loop. This function is responsible to delete the file. For a file to be deleted, the tester should call DoneWithExportFile() if the test was successful.

func (*ExportFile) Close

func (f *ExportFile) Close() error

Close() is called by the observer loop when it exits, and is responsible for deleting the file.

type LineParser

type LineParser = func(line string) error

type LogCapturer

type LogCapturer struct {
	*testing.T
	Log *logrus.Logger
}

func (LogCapturer) Write

func (tl LogCapturer) Write(p []byte) (n int, err error)

Directories

Path Synopsis
Package perfring provides utilities to do tests using the perf ringbuffer directly
Package perfring provides utilities to do tests using the perf ringbuffer directly

Jump to

Keyboard shortcuts

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