testutil

package
v1.16.3 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2025 License: MIT, MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ActiveThreadCount added in v1.13.6

func ActiveThreadCount(state *multithreaded.State) int

func AddHintLengthPrefix added in v1.13.5

func AddHintLengthPrefix(data []byte) []byte

func AddPreimageLengthPrefix added in v1.13.5

func AddPreimageLengthPrefix(data []byte) []byte

func FindNextThread added in v1.9.2

func FindNextThread(state *multithreaded.State) *multithreaded.ThreadState

FindNextThread Finds the next thread in line according to thread traversal logic

func FindNextThreadExcluding added in v1.9.2

func FindNextThreadExcluding(state *multithreaded.State, threadId arch.Word) *multithreaded.ThreadState

func FindNextThreadFiltered added in v1.9.2

func FindNextThreadFiltered(state *multithreaded.State, filter ThreadFilter) *multithreaded.ThreadState

func FindThread added in v1.9.2

func FindThread(state *multithreaded.State, threadId arch.Word) *multithreaded.ThreadState

func GetAllThreads added in v1.9.2

func GetAllThreads(state *multithreaded.State) []*multithreaded.ThreadState

func GetMtState added in v1.9.2

func GetMtState(t require.TestingT, vm mipsevm.FPVM) *multithreaded.State

func GetThreadStacks added in v1.9.2

func GetThreadStacks(state *multithreaded.State) (activeStack, inactiveStack []*multithreaded.ThreadState)

func InitializeSingleThread added in v1.9.2

func InitializeSingleThread(randSeed int, state *multithreaded.State, traverseRight bool, opts ...StateOption)

func RandomState added in v1.9.2

func RandomState(seed int) *multithreaded.State

func RandomThread added in v1.9.2

func RandomThread(randSeed int64) *multithreaded.ThreadState

func SetupThreads added in v1.9.2

func SetupThreads(randomSeed int64, state *multithreaded.State, traverseRight bool, activeStackSize, otherStackSize int)

func ToMTState added in v1.13.5

func ToMTState(t require.TestingT, state mipsevm.FPVMState) *multithreaded.State

Types

type ExpectedState added in v1.13.5

type ExpectedState struct {
	PreimageKey         common.Hash
	PreimageOffset      arch.Word
	Heap                arch.Word
	LLReservationStatus multithreaded.LLReservationStatus
	LLAddress           arch.Word
	LLOwnerThread       arch.Word
	ExitCode            uint8
	Exited              bool
	Step                uint64
	LastHint            hexutil.Bytes
	MemoryRoot          common.Hash
	// contains filtered or unexported fields
}

ExpectedState is a test utility that basically stores a copy of a state that can be explicitly mutated to define an expected post-state. The post-state is then validated with ExpectedState.Validate(t, postState)

func NewExpectedState added in v1.13.5

func NewExpectedState(t require.TestingT, state mipsevm.FPVMState) *ExpectedState

func (*ExpectedState) ActiveThread added in v1.13.5

func (e *ExpectedState) ActiveThread() *ExpectedThreadState

func (*ExpectedState) ActiveThreadId added in v1.13.5

func (e *ExpectedState) ActiveThreadId() arch.Word

func (*ExpectedState) ExpectActiveThreadId added in v1.13.6

func (e *ExpectedState) ExpectActiveThreadId(expected arch.Word)

func (*ExpectedState) ExpectContextSwitch added in v1.13.6

func (e *ExpectedState) ExpectContextSwitch()

func (*ExpectedState) ExpectMemoryReservationCleared added in v1.13.6

func (e *ExpectedState) ExpectMemoryReservationCleared()

func (*ExpectedState) ExpectMemoryWrite added in v1.13.6

func (e *ExpectedState) ExpectMemoryWrite(addr arch.Word, val arch.Word)

func (*ExpectedState) ExpectMemoryWriteUint32 added in v1.13.5

func (e *ExpectedState) ExpectMemoryWriteUint32(t require.TestingT, addr arch.Word, val uint32)

func (*ExpectedState) ExpectNewThread added in v1.13.5

func (e *ExpectedState) ExpectNewThread() *ExpectedThreadState

func (*ExpectedState) ExpectNextThreadId added in v1.13.6

func (e *ExpectedState) ExpectNextThreadId(expected arch.Word)

func (*ExpectedState) ExpectNoContextSwitch added in v1.13.6

func (e *ExpectedState) ExpectNoContextSwitch()

func (*ExpectedState) ExpectPoppedThread added in v1.13.6

func (e *ExpectedState) ExpectPoppedThread()

func (*ExpectedState) ExpectPreemption added in v1.13.5

func (e *ExpectedState) ExpectPreemption()

func (*ExpectedState) ExpectStep added in v1.13.5

func (e *ExpectedState) ExpectStep()

func (*ExpectedState) ExpectTraverseRight added in v1.13.6

func (e *ExpectedState) ExpectTraverseRight(traverseRight bool)

func (*ExpectedState) ExpectedMemoryWrites added in v1.13.6

func (e *ExpectedState) ExpectedMemoryWrites() []arch.Word

func (*ExpectedState) PrestateActiveThread added in v1.13.5

func (e *ExpectedState) PrestateActiveThread() *ExpectedThreadState

func (*ExpectedState) Thread added in v1.13.5

func (e *ExpectedState) Thread(threadId arch.Word) *ExpectedThreadState

func (*ExpectedState) Validate added in v1.13.5

func (e *ExpectedState) Validate(t require.TestingT, state mipsevm.FPVMState)

type ExpectedThreadState added in v1.9.2

type ExpectedThreadState struct {
	ThreadId  arch.Word
	ExitCode  uint8
	Exited    bool
	PC        arch.Word
	NextPC    arch.Word
	HI        arch.Word
	LO        arch.Word
	Registers [32]arch.Word
	Dropped   bool
}

type StateMutator added in v1.13.5

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

func NewStateMutator added in v1.13.5

func NewStateMutator(state *multithreaded.State) *StateMutator

func (*StateMutator) Randomize added in v1.13.5

func (m *StateMutator) Randomize(randSeed int64)

func (*StateMutator) SetExitCode added in v1.13.5

func (m *StateMutator) SetExitCode(val uint8)

func (*StateMutator) SetExited added in v1.13.5

func (m *StateMutator) SetExited(val bool)

func (*StateMutator) SetHI added in v1.13.5

func (m *StateMutator) SetHI(val arch.Word)

func (*StateMutator) SetHeap added in v1.13.5

func (m *StateMutator) SetHeap(val arch.Word)

func (*StateMutator) SetLO added in v1.13.5

func (m *StateMutator) SetLO(val arch.Word)

func (*StateMutator) SetLastHint added in v1.13.5

func (m *StateMutator) SetLastHint(val hexutil.Bytes)

func (*StateMutator) SetNextPC added in v1.13.5

func (m *StateMutator) SetNextPC(val arch.Word)

func (*StateMutator) SetPC added in v1.13.5

func (m *StateMutator) SetPC(val arch.Word)

func (*StateMutator) SetPreimageKey added in v1.13.5

func (m *StateMutator) SetPreimageKey(val common.Hash)

func (*StateMutator) SetPreimageOffset added in v1.13.5

func (m *StateMutator) SetPreimageOffset(val arch.Word)

func (*StateMutator) SetStep added in v1.13.5

func (m *StateMutator) SetStep(val uint64)

type StateOption added in v1.13.5

type StateOption func(state *StateMutator)

func WithHI added in v1.13.5

func WithHI(hi arch.Word) StateOption

func WithHeap added in v1.13.5

func WithHeap(addr arch.Word) StateOption

func WithLO added in v1.13.5

func WithLO(lo arch.Word) StateOption

func WithLastHint added in v1.13.5

func WithLastHint(lastHint hexutil.Bytes) StateOption

func WithNextPC added in v1.13.5

func WithNextPC(nextPC arch.Word) StateOption

func WithPC added in v1.13.5

func WithPC(pc arch.Word) StateOption

func WithPCAndNextPC added in v1.13.5

func WithPCAndNextPC(pc arch.Word) StateOption

func WithPreimageKey added in v1.13.5

func WithPreimageKey(key common.Hash) StateOption

func WithPreimageOffset added in v1.13.5

func WithPreimageOffset(offset arch.Word) StateOption

func WithRandomization added in v1.13.5

func WithRandomization(seed int64) StateOption

func WithStep added in v1.13.5

func WithStep(step uint64) StateOption

type ThreadFilter added in v1.9.2

type ThreadFilter func(thread *multithreaded.ThreadState) bool

type ThreadIterator added in v1.9.2

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

func NewThreadIterator added in v1.9.2

func NewThreadIterator(state *multithreaded.State) ThreadIterator

func (*ThreadIterator) Next added in v1.9.2

Jump to

Keyboard shortcuts

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