pct

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2022 License: MIT Imports: 9 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Chain

type Chain struct {
	ID int
	// contains filtered or unexported fields
}

func NewChain

func NewChain(id int, event *Message) *Chain

func (*Chain) AddEvent

func (c *Chain) AddEvent(e *Message)

func (*Chain) EnabledEvent

func (c *Chain) EnabledEvent() (*Message, bool)

func (*Chain) IncrEnabledEvent

func (c *Chain) IncrEnabledEvent()

func (*Chain) IsEnabled

func (c *Chain) IsEnabled() bool

func (*Chain) LastEvent

func (c *Chain) LastEvent() *Message

type ChainPartition

type ChainPartition struct {
	Chains     *types.Map[int, *Chain]
	Partitions []*types.Set[int]
	// contains filtered or unexported fields
}

func NewChainPartition

func NewChainPartition(mo MessageOrder) *ChainPartition

func (*ChainPartition) AddEvent

func (p *ChainPartition) AddEvent(e *Message) (int, bool)

AddEvent adds the event to the chain partition Returns the chain ID and a boolean indicating if the chain is newly created

func (*ChainPartition) EnabledChains

func (p *ChainPartition) EnabledChains() []int

func (*ChainPartition) GetEnabledEvent

func (p *ChainPartition) GetEnabledEvent(chainID int) (*Message, bool)

func (*ChainPartition) MarkScheduled added in v0.2.1

func (p *ChainPartition) MarkScheduled(chainID int)

func (*ChainPartition) Reset

func (p *ChainPartition) Reset()

type DefaultMessageOrder

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

func NewDefaultMessageOrder

func NewDefaultMessageOrder() *DefaultMessageOrder

func (*DefaultMessageOrder) AddRecvEvent

func (eo *DefaultMessageOrder) AddRecvEvent(e *types.Message)

func (*DefaultMessageOrder) AddSendEvent

func (eo *DefaultMessageOrder) AddSendEvent(e *types.Message)

func (*DefaultMessageOrder) Lt

func (eo *DefaultMessageOrder) Lt(e1, e2 types.MessageID) bool

func (*DefaultMessageOrder) Reset

func (eo *DefaultMessageOrder) Reset()

type Message

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

func NewMessage

func NewMessage(message *types.Message) *Message

func (*Message) HasLabel

func (e *Message) HasLabel() bool

func (*Message) Label

func (e *Message) Label() int

func (*Message) Lt

func (e *Message) Lt(mo MessageOrder, other *Message) bool

Lt returns true if e < other in the given message order

type MessageOrder

type MessageOrder interface {
	AddSendEvent(*types.Message)
	AddRecvEvent(*types.Message)
	Lt(types.MessageID, types.MessageID) bool
	Reset()
}

type PCTStrategy

type PCTStrategy struct {
	*types.BaseService
	// contains filtered or unexported fields
}

func NewPCTStrategy

func NewPCTStrategy(config *PCTStrategyConfig) *PCTStrategy

func (*PCTStrategy) AddMessage

func (p *PCTStrategy) AddMessage(m *Message, ctx *strategies.Context)

func (*PCTStrategy) EndCurIteration

func (p *PCTStrategy) EndCurIteration(_ *strategies.Context)

func (*PCTStrategy) Finalize

func (p *PCTStrategy) Finalize(_ *strategies.Context)

func (*PCTStrategy) NextIteration

func (p *PCTStrategy) NextIteration(ctx *strategies.Context)

func (*PCTStrategy) Schedule

func (p *PCTStrategy) Schedule() (*Message, bool)

func (*PCTStrategy) Start

func (p *PCTStrategy) Start() error

func (*PCTStrategy) Step

func (*PCTStrategy) Stop

func (p *PCTStrategy) Stop() error

type PCTStrategyConfig

type PCTStrategyConfig struct {
	RandSrc        rand.Source
	MaxEvents      int
	Depth          int
	MessageOrder   MessageOrder
	RecordFilePath string
}

type PCTStrategyWithTestCase added in v0.2.1

type PCTStrategyWithTestCase struct {
	*PCTStrategy
	// contains filtered or unexported fields
}

func NewPCTStrategyWithTestCase added in v0.2.1

func NewPCTStrategyWithTestCase(config *PCTStrategyConfig, testCase *testlib.TestCase) *PCTStrategyWithTestCase

func (*PCTStrategyWithTestCase) EndCurIteration added in v0.2.1

func (p *PCTStrategyWithTestCase) EndCurIteration(ctx *strategies.Context)

func (*PCTStrategyWithTestCase) NextIteration added in v0.2.1

func (p *PCTStrategyWithTestCase) NextIteration(ctx *strategies.Context)

func (*PCTStrategyWithTestCase) Step added in v0.2.1

type PropertyTester

type PropertyTester interface {
}

type VCValue

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

func DefaultVCValue

func DefaultVCValue(replica types.ReplicaID) *VCValue

func (*VCValue) Lt

func (v *VCValue) Lt(other *VCValue) bool

Lt Returns true if v < other

func (*VCValue) Next

func (v *VCValue) Next(replica types.ReplicaID) *VCValue

func (*VCValue) String added in v0.2.1

func (v *VCValue) String() string

Jump to

Keyboard shortcuts

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