Documentation ¶
Index ¶
- func AssertChannelEmpty(t testing.TB, channel interface{}, errorMessage string)
- func AssertContainsBlock(t testing.TB, blks []blocks.Block, block blocks.Block)
- func AssertContainsPeer(t testing.TB, peers []peer.ID, p peer.ID)
- func AssertDoesReceive(ctx context.Context, t testing.TB, channel interface{}, errorMessage string)
- func AssertDoesReceiveFirst(t testing.TB, channel interface{}, errorMessage string, ...)
- func AssertReceive(ctx context.Context, t testing.TB, channel interface{}, out interface{}, ...)
- func AssertReceiveFirst(t testing.TB, channel interface{}, out interface{}, errorMessage string, ...)
- func AssertSends(ctx context.Context, t testing.TB, channel interface{}, in interface{}, ...)
- func AttributeValueInTraceSpan(t *testing.T, stub tracetest.SpanStub, attributeName string) attribute.Value
- func CollectErrors(ctx context.Context, t *testing.T, errChan <-chan error) []error
- func CollectResponses(ctx context.Context, t testing.TB, ...) []graphsync.ResponseProgress
- func ContainsBlock(blks []blocks.Block, block blocks.Block) bool
- func ContainsPeer(peers []peer.ID, p peer.ID) bool
- func EventInTraceSpan(t *testing.T, stub tracetest.SpanStub, eventName string) trace.Event
- func GenerateBlocksOfSize(n int, size int64) []blocks.Block
- func GenerateCids(n int) []cid.Cid
- func GeneratePeers(n int) []peer.ID
- func IndexOf(blks []blocks.Block, c cid.Cid) int
- func NewFakeBlockData() graphsync.BlockData
- func NewInvalidSelectorSpec() ipld.Node
- func NewTestLink() ipld.Link
- func NewTestStore(blocksWritten map[ipld.Link][]byte) ipld.LinkSystem
- func NewUnparsableSelectorSpec() ipld.Node
- func RandomBytes(n int64) []byte
- func ReadNResponses(ctx context.Context, t testing.TB, ...) []graphsync.ResponseProgress
- func RefuteContainsBlock(t testing.TB, blks []blocks.Block, block blocks.Block)
- func RefuteContainsPeer(t testing.TB, peers []peer.ID, p peer.ID)
- func RepeatTraceStrings(tmpl string, count int) []string
- func SetupTracing(ctx context.Context) (context.Context, func(t *testing.T) *Collector)
- func VerifyEmptyErrors(ctx context.Context, t testing.TB, errChan <-chan error)
- func VerifyEmptyResponse(ctx context.Context, t testing.TB, ...)
- func VerifyHasErrors(ctx context.Context, t testing.TB, errChan <-chan error)
- func VerifySingleTerminalError(ctx context.Context, t testing.TB, errChan <-chan error)
- type Collector
- func (c *Collector) ExportSpans(ctx context.Context, spans []trace.ReadOnlySpan) error
- func (c Collector) FindParentSpans() tracetest.SpanStubs
- func (c Collector) FindSpanByTraceString(trace string) *tracetest.SpanStub
- func (c Collector) FindSpans(name string) tracetest.SpanStubs
- func (c Collector) FindSpansWithParent(stub tracetest.SpanStub) tracetest.SpanStubs
- func (c *Collector) Shutdown(ctx context.Context) error
- func (c Collector) SingleExceptionEvent(t *testing.T, trace string, typeRe string, messageRe string, errorCode bool)
- func (c Collector) TracesToStrings() []string
- type DispatchedEvent
- type ExceptionEvent
- type MockPublisher
- type TestBlockChain
- func (tbc *TestBlockChain) AllBlocks() []blocks.Block
- func (tbc *TestBlockChain) Blocks(from int, to int) []blocks.Block
- func (tbc *TestBlockChain) Chooser(ipld.Link, ipld.LinkContext) (ipld.NodePrototype, error)
- func (tbc *TestBlockChain) LinkTipIndex(fromTip int) ipld.Link
- func (tbc *TestBlockChain) NodeTipIndex(fromTip int) ipld.Node
- func (tbc *TestBlockChain) PathTipIndex(fromTip int) ipld.Path
- func (tbc *TestBlockChain) RemainderBlocks(from int) []blocks.Block
- func (tbc *TestBlockChain) Selector() ipld.Node
- func (tbc *TestBlockChain) VerifyRemainder(ctx context.Context, responseChan <-chan graphsync.ResponseProgress, from int)
- func (tbc *TestBlockChain) VerifyRemainderSync(responses []graphsync.ResponseProgress, from int)
- func (tbc *TestBlockChain) VerifyRemainderWithTypes(ctx context.Context, responseChan <-chan graphsync.ResponseProgress, from int)
- func (tbc *TestBlockChain) VerifyResponseRange(ctx context.Context, responseChan <-chan graphsync.ResponseProgress, from int, ...)
- func (tbc *TestBlockChain) VerifyResponseRangeSync(responses []graphsync.ResponseProgress, from int, to int)
- func (tbc *TestBlockChain) VerifyWholeChain(ctx context.Context, responseChan <-chan graphsync.ResponseProgress)
- func (tbc *TestBlockChain) VerifyWholeChainSync(responses []graphsync.ResponseProgress)
- func (tbc *TestBlockChain) VerifyWholeChainWithTypes(ctx context.Context, responseChan <-chan graphsync.ResponseProgress)
- type TestConnManager
- func (tcm *TestConnManager) AssertProtected(t testing.TB, p peer.ID)
- func (tcm *TestConnManager) AssertProtectedWithTags(t testing.TB, p peer.ID, tags ...string)
- func (tcm *TestConnManager) Protect(p peer.ID, tag string)
- func (tcm *TestConnManager) RefuteProtected(t testing.TB, p peer.ID)
- func (tcm *TestConnManager) RefuteProtectedWithTags(t testing.TB, p peer.ID, tags ...string)
- func (tcm *TestConnManager) Unprotect(p peer.ID, tag string) bool
- type TestIPLDTree
- type TestIdentityDAG
- type TestSubscriber
- func (ts *TestSubscriber) ExpectCloses(ctx context.Context, t *testing.T, topics []notifications.Topic)
- func (ts *TestSubscriber) ExpectClosesAnyOrder(ctx context.Context, t *testing.T, topics []notifications.Topic)
- func (ts *TestSubscriber) ExpectEvents(ctx context.Context, t *testing.T, events []DispatchedEvent)
- func (ts *TestSubscriber) ExpectEventsAllTopics(ctx context.Context, t *testing.T, events []notifications.Event)
- func (ts *TestSubscriber) ExpectNCloses(ctx context.Context, t *testing.T, n int)
- func (ts *TestSubscriber) NoEventsReceived(t *testing.T)
- func (ts *TestSubscriber) OnClose(topic notifications.Topic)
- func (ts *TestSubscriber) OnNext(topic notifications.Topic, ev notifications.Event)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssertChannelEmpty ¶ added in v0.1.0
AssertChannelEmpty verifies that a channel has no value currently
func AssertContainsBlock ¶ added in v0.1.0
AssertContainsBlock will fail a test if the block is not in the given block list
func AssertContainsPeer ¶ added in v0.1.0
AssertContainsPeer will fail a test if the peer is not in the given peer list
func AssertDoesReceive ¶ added in v0.1.0
AssertDoesReceive verifies that a channel returns some value before the given context closes
func AssertDoesReceiveFirst ¶ added in v0.1.0
func AssertDoesReceiveFirst(t testing.TB, channel interface{}, errorMessage string, incorrectChannels ...interface{})
AssertDoesReceiveFirst asserts that the given channel receives a value before any of the other channels specified
func AssertReceive ¶ added in v0.1.0
func AssertReceive(ctx context.Context, t testing.TB, channel interface{}, out interface{}, errorMessage string)
AssertReceive verifies that a channel returns a value before the given context closes, and writes into into out, which should be a pointer to the value type
func AssertReceiveFirst ¶ added in v0.1.0
func AssertReceiveFirst(t testing.TB, channel interface{}, out interface{}, errorMessage string, incorrectChannels ...interface{})
AssertReceiveFirst verifies that a channel returns a value on the specified channel before the other channels, and writes the value into out, which should be a pointer to the value type
func AssertSends ¶ added in v0.1.0
func AssertSends(ctx context.Context, t testing.TB, channel interface{}, in interface{}, errorMessage string)
AssertSends attempts to send the given input value to the given channel before the given context closes
func AttributeValueInTraceSpan ¶ added in v0.10.7
func AttributeValueInTraceSpan(t *testing.T, stub tracetest.SpanStub, attributeName string) attribute.Value
AttributeValueInTraceSpan is a test helper that asserts that at a span contains an attribute with the name provided, and returns the value of that attribute for further inspection.
func CollectErrors ¶
CollectErrors is just a utility to convert an error channel into an array.
func CollectResponses ¶
func CollectResponses(ctx context.Context, t testing.TB, responseChan <-chan graphsync.ResponseProgress) []graphsync.ResponseProgress
CollectResponses is just a utility to convert a graphsync response progress channel into an array.
func ContainsBlock ¶
ContainsBlock returns true if a block is found n a list of blocks
func ContainsPeer ¶
ContainsPeer returns true if a peer is found n a list of peers.
func EventInTraceSpan ¶ added in v0.10.7
EventInTraceSpan is a test helper that asserts that at a span contains an event with the name provided, and returns the value of that event for further inspection.
func GenerateBlocksOfSize ¶
GenerateBlocksOfSize generates a series of blocks of the given byte size
func NewFakeBlockData ¶ added in v0.1.0
func NewFakeBlockData() graphsync.BlockData
NewFakeBlockData returns a fake block that matches the block data interface
func NewInvalidSelectorSpec ¶ added in v0.1.0
NewInvalidSelectorSpec returns a spec that will fail when you attempt to validate it on the responder side
func NewTestLink ¶ added in v0.1.0
func NewTestLink() ipld.Link
NewTestLink returns a randomly generated IPLD Link
func NewTestStore ¶ added in v0.1.0
func NewTestStore(blocksWritten map[ipld.Link][]byte) ipld.LinkSystem
NewTestStore provides a loader and storer for the given in memory link -> byte data map
func NewUnparsableSelectorSpec ¶ added in v0.1.0
NewUnparsableSelectorSpec returns a spec that will fail when you attempt to validate it or decompose to a node + selector.
func RandomBytes ¶
RandomBytes returns a byte array of the given size with random values.
func ReadNResponses ¶
func ReadNResponses(ctx context.Context, t testing.TB, responseChan <-chan graphsync.ResponseProgress, count int) []graphsync.ResponseProgress
ReadNResponses does a partial read from a ResponseProgress channel -- up to n values
func RefuteContainsBlock ¶ added in v0.1.0
RefuteContainsBlock will fail a test if the block is in the given block list
func RefuteContainsPeer ¶ added in v0.1.0
RefuteContainsPeer will fail a test if the peer is in the given peer list
func RepeatTraceStrings ¶ added in v0.11.5
func SetupTracing ¶ added in v0.10.7
SetupTracing returns a test helper that can will collect all spans within a Collector. The returned helper function should be called at the point in a test where the spans are ready to be analyzed. Any spans not properly completed at that point won't be represented in the Collector.
func VerifyEmptyErrors ¶
VerifyEmptyErrors verifies that no errors were sent over a channel before it was closed
func VerifyEmptyResponse ¶
func VerifyEmptyResponse(ctx context.Context, t testing.TB, responseChan <-chan graphsync.ResponseProgress)
VerifyEmptyResponse verifies that no response progress happened before the channel was closed.
func VerifyHasErrors ¶ added in v0.1.0
VerifyHasErrors verifies that at least one error was sent over a channel
Types ¶
type Collector ¶ added in v0.10.7
Collector can be used as a trace batcher to provide traces to, we collect individual spans and then extract useful data out of them for test assertions
func (*Collector) ExportSpans ¶ added in v0.10.7
ExportSpans receives the ReadOnlySpans from the batch provider
func (Collector) FindParentSpans ¶ added in v0.10.7
FindParentSpans finds spans that have no parents, they are at the top any stack.
func (Collector) FindSpanByTraceString ¶ added in v0.10.7
FindSpanByTraceString is similar to FindSpans but returns a single span identified by its trace string as described in TracesToStrings. Note that this string can also be a partial of a complete trace, e.g. just `"foo(0)"` without any children to fetch the parent span.
func (Collector) FindSpansWithParent ¶ added in v0.10.7
FindSpansWithParent finds spans that are children of the provided span.
func (*Collector) Shutdown ¶ added in v0.10.7
Shutdown is a noop, we don't need to do anything fancy
func (Collector) SingleExceptionEvent ¶ added in v0.10.7
func (c Collector) SingleExceptionEvent(t *testing.T, trace string, typeRe string, messageRe string, errorCode bool)
SingleExceptionEvent is a test helper that asserts that a span, identified by a trace string (see TracesToStrings) contains a single exception, identified by the type (regexp) and message (regexp). If errorCode is true, then we also assert that the span has an error status code, with the same message (regexp)
func (Collector) TracesToStrings ¶ added in v0.10.7
TracesToString returns an array of all traces represented as strings with each span in the trace identified by name and its number (within the parent span) in parens, separated by a '->'. e.g. `"foo(0)->bar(0)","foo(0)->bar(1)"`
type DispatchedEvent ¶ added in v0.3.0
type DispatchedEvent struct { Topic notifications.Topic Event notifications.Event }
type ExceptionEvent ¶ added in v0.10.7
ExceptionEvent is a simplistic string form representation of an event
func EventAsException ¶ added in v0.10.7
func EventAsException(t *testing.T, evt trace.Event) ExceptionEvent
EventAsException is a test helper that converts a trace event to an ExceptionEvent for easier inspection.
type MockPublisher ¶ added in v0.3.0
type MockPublisher struct {
// contains filtered or unexported fields
}
func NewMockPublisher ¶ added in v0.3.0
func NewMockPublisher() *MockPublisher
func (*MockPublisher) AddSubscriber ¶ added in v0.11.4
func (mp *MockPublisher) AddSubscriber(subscriber notifications.Subscriber)
func (*MockPublisher) PublishEvents ¶ added in v0.3.0
func (mp *MockPublisher) PublishEvents(topic notifications.Topic, events []notifications.Event)
type TestBlockChain ¶ added in v0.1.0
type TestBlockChain struct { GenisisNode ipld.Node GenisisLink ipld.Link MiddleNodes []ipld.Node MiddleLinks []ipld.Link TipNode ipld.Node TipLink ipld.Link // contains filtered or unexported fields }
TestBlockChain is a simulated data structure similar to a blockchain which graphsync is uniquely suited for
func SetupBlockChain ¶ added in v0.1.0
func SetupBlockChain( ctx context.Context, t testing.TB, lsys ipld.LinkSystem, size uint64, blockChainLength int) *TestBlockChain
SetupBlockChain creates a new test block chain with the given height
func (*TestBlockChain) AllBlocks ¶ added in v0.1.0
func (tbc *TestBlockChain) AllBlocks() []blocks.Block
AllBlocks returns all blocks for a blockchain
func (*TestBlockChain) Blocks ¶ added in v0.1.0
func (tbc *TestBlockChain) Blocks(from int, to int) []blocks.Block
Blocks Returns the given raw blocks for the block chain for the given range, indexed from the tip
func (*TestBlockChain) Chooser ¶ added in v0.1.0
func (tbc *TestBlockChain) Chooser(ipld.Link, ipld.LinkContext) (ipld.NodePrototype, error)
Chooser is a NodeBuilderChooser function that always returns the block chain
func (*TestBlockChain) LinkTipIndex ¶ added in v0.1.0
func (tbc *TestBlockChain) LinkTipIndex(fromTip int) ipld.Link
LinkTipIndex returns a link to the block at the given index from the tip
func (*TestBlockChain) NodeTipIndex ¶ added in v0.1.0
func (tbc *TestBlockChain) NodeTipIndex(fromTip int) ipld.Node
NodeTipIndex returns the node to the block at the given index from the tip
func (*TestBlockChain) PathTipIndex ¶ added in v0.13.0
func (tbc *TestBlockChain) PathTipIndex(fromTip int) ipld.Path
PathTipIndex returns the path to the block at the given index from the tip
func (*TestBlockChain) RemainderBlocks ¶ added in v0.1.0
func (tbc *TestBlockChain) RemainderBlocks(from int) []blocks.Block
RemainderBlocks returns the remaining blocks for a blockchain, indexed from tip
func (*TestBlockChain) Selector ¶ added in v0.1.0
func (tbc *TestBlockChain) Selector() ipld.Node
Selector returns the selector to recursive traverse the block chain parent links
func (*TestBlockChain) VerifyRemainder ¶ added in v0.1.0
func (tbc *TestBlockChain) VerifyRemainder(ctx context.Context, responseChan <-chan graphsync.ResponseProgress, from int)
VerifyRemainder verifies the given response channel returns the remainder of the chain starting at the nth block from the tip
func (*TestBlockChain) VerifyRemainderSync ¶ added in v0.1.0
func (tbc *TestBlockChain) VerifyRemainderSync(responses []graphsync.ResponseProgress, from int)
VerifyRemainderSync verifies the given set of read responses are the remainder of the chain starting at the nth block from the tip
func (*TestBlockChain) VerifyRemainderWithTypes ¶ added in v0.1.0
func (tbc *TestBlockChain) VerifyRemainderWithTypes(ctx context.Context, responseChan <-chan graphsync.ResponseProgress, from int)
VerifyRemainderWithTypes verifies the given response channel returns the remainder of the chain starting at the nth block from the tip and that the types in the response are the expected types for a block chain
func (*TestBlockChain) VerifyResponseRange ¶ added in v0.1.0
func (tbc *TestBlockChain) VerifyResponseRange(ctx context.Context, responseChan <-chan graphsync.ResponseProgress, from int, to int)
VerifyResponseRange verifies the given response channel returns the given range of respnses, indexed from the tip (with possibly more data left in the channel)
func (*TestBlockChain) VerifyResponseRangeSync ¶ added in v0.1.0
func (tbc *TestBlockChain) VerifyResponseRangeSync(responses []graphsync.ResponseProgress, from int, to int)
VerifyResponseRangeSync verifies given set of read responses match responses for the given range of the blockchain, indexed from the tip (with possibly more data left in the channel)
func (*TestBlockChain) VerifyWholeChain ¶ added in v0.1.0
func (tbc *TestBlockChain) VerifyWholeChain(ctx context.Context, responseChan <-chan graphsync.ResponseProgress)
VerifyWholeChain verifies the given response channel returns the expected responses for the whole chain
func (*TestBlockChain) VerifyWholeChainSync ¶ added in v0.1.0
func (tbc *TestBlockChain) VerifyWholeChainSync(responses []graphsync.ResponseProgress)
VerifyWholeChainSync verifies the given set of read responses are the expected responses for the whole chain
func (*TestBlockChain) VerifyWholeChainWithTypes ¶ added in v0.1.0
func (tbc *TestBlockChain) VerifyWholeChainWithTypes(ctx context.Context, responseChan <-chan graphsync.ResponseProgress)
VerifyWholeChainWithTypes verifies the given response channel returns the expected responses for the whole chain and that the types in the response are the expected types for a block chain
type TestConnManager ¶ added in v0.10.0
type TestConnManager struct {
// contains filtered or unexported fields
}
TestConnManager implements network.ConnManager and allows you to assert behavior
func NewTestConnManager ¶ added in v0.10.0
func NewTestConnManager() *TestConnManager
NewTestConnManager returns a new TestConnManager
func (*TestConnManager) AssertProtected ¶ added in v0.10.0
func (tcm *TestConnManager) AssertProtected(t testing.TB, p peer.ID)
AssertProtected asserts that the connection is protected by at least one tag
func (*TestConnManager) AssertProtectedWithTags ¶ added in v0.10.0
AssertProtectedWithTags verifies the connection is protected with the given tags at least
func (*TestConnManager) Protect ¶ added in v0.10.0
func (tcm *TestConnManager) Protect(p peer.ID, tag string)
Protect simulates protecting a connection (just records occurence)
func (*TestConnManager) RefuteProtected ¶ added in v0.10.0
func (tcm *TestConnManager) RefuteProtected(t testing.TB, p peer.ID)
RefuteProtected refutes that a connection has been protect
func (*TestConnManager) RefuteProtectedWithTags ¶ added in v0.10.0
RefuteProtectedWithTags verifies the connection is not protected with any of the given tags
type TestIPLDTree ¶ added in v0.1.0
type TestIPLDTree struct { Storage map[ipld.Link][]byte LeafAlpha ipld.Node LeafAlphaLnk ipld.Link LeafAlphaBlock blocks.Block LeafBeta ipld.Node LeafBetaLnk ipld.Link LeafBetaBlock blocks.Block MiddleMapNode ipld.Node MiddleMapNodeLnk ipld.Link MiddleMapBlock blocks.Block MiddleListNode ipld.Node MiddleListNodeLnk ipld.Link MiddleListBlock blocks.Block RootNode ipld.Node RootNodeLnk ipld.Link RootBlock blocks.Block }
TestIPLDTree is a set of IPLD Data that forms a tree spread across some blocks with a serialized in memory representation
func NewTestIPLDTree ¶ added in v0.1.0
func NewTestIPLDTree() TestIPLDTree
NewTestIPLDTree returns a fake tree of nodes, spread across 5 blocks
type TestIdentityDAG ¶ added in v0.14.9
type TestIdentityDAG struct { RootLink ipld.Link AllLinks []ipld.Link AllLinksNoIdent []ipld.Link // contains filtered or unexported fields }
func SetupIdentityDAG ¶ added in v0.14.9
func SetupIdentityDAG( ctx context.Context, t testing.TB, lsys ipld.LinkSystem, ) *TestIdentityDAG
func (*TestIdentityDAG) AllBlocks ¶ added in v0.14.9
func (tid *TestIdentityDAG) AllBlocks() []blocks.Block
func (*TestIdentityDAG) VerifyWholeDAG ¶ added in v0.14.9
func (tid *TestIdentityDAG) VerifyWholeDAG(ctx context.Context, responseChan <-chan graphsync.ResponseProgress)
VerifyWholeDAGWithTypes verifies the given response channel returns the expected responses for the whole DAG and that the types in the response are the expected types for the DAG
type TestSubscriber ¶ added in v0.3.0
type TestSubscriber struct {
// contains filtered or unexported fields
}
func NewTestSubscriber ¶ added in v0.3.0
func NewTestSubscriber(bufferSize int) *TestSubscriber
func (*TestSubscriber) ExpectCloses ¶ added in v0.3.0
func (ts *TestSubscriber) ExpectCloses(ctx context.Context, t *testing.T, topics []notifications.Topic)
func (*TestSubscriber) ExpectClosesAnyOrder ¶ added in v0.3.0
func (ts *TestSubscriber) ExpectClosesAnyOrder(ctx context.Context, t *testing.T, topics []notifications.Topic)
func (*TestSubscriber) ExpectEvents ¶ added in v0.3.0
func (ts *TestSubscriber) ExpectEvents(ctx context.Context, t *testing.T, events []DispatchedEvent)
func (*TestSubscriber) ExpectEventsAllTopics ¶ added in v0.11.4
func (ts *TestSubscriber) ExpectEventsAllTopics(ctx context.Context, t *testing.T, events []notifications.Event)
func (*TestSubscriber) ExpectNCloses ¶ added in v0.11.4
func (*TestSubscriber) NoEventsReceived ¶ added in v0.3.0
func (ts *TestSubscriber) NoEventsReceived(t *testing.T)
func (*TestSubscriber) OnClose ¶ added in v0.3.0
func (ts *TestSubscriber) OnClose(topic notifications.Topic)
func (*TestSubscriber) OnNext ¶ added in v0.3.0
func (ts *TestSubscriber) OnNext(topic notifications.Topic, ev notifications.Event)