Documentation ¶
Overview ¶
Package drivertest provides a conformance test for implementations of driver.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RunBenchmarks ¶ added in v0.10.0
RunBenchmarks runs benchmarks for driver implementations of pubsub.
func RunConformanceTests ¶
func RunConformanceTests(t *testing.T, newHarness HarnessMaker, asTests []AsTest)
RunConformanceTests runs conformance tests for driver implementations of pubsub.
Types ¶
type AsTest ¶
type AsTest interface { // Name should return a descriptive name for the test. Name() string // TopicCheck will be called to allow verifcation of Topic.As. TopicCheck(t *pubsub.Topic) error // SubscriptionCheck will be called to allow verification of Subscription.As. SubscriptionCheck(s *pubsub.Subscription) error // TopicErrorCheck will be called to allow verification of Topic.ErrorAs. // The error will be the one returned from SendBatch when called with // a non-existent topic. TopicErrorCheck(t *pubsub.Topic, err error) error // SubscriptionErrorCheck will be called to allow verification of // Subscription.ErrorAs. // The error will be the one returned from ReceiveBatch when called with // a non-existent subscription. SubscriptionErrorCheck(s *pubsub.Subscription, err error) error // MessageCheck will be called to allow verification of Message.As. MessageCheck(m *pubsub.Message) error // BeforeSend will be used as Message.BeforeSend as part of sending a test // message. BeforeSend(as func(interface{}) bool) error // AfterSend will be used as Message.AfterSend as part of sending a test // message. AfterSend(as func(interface{}) bool) error }
AsTest represents a test of As functionality. The conformance test: 1. Calls TopicCheck. 2. Calls SubscriptionCheck. 3. Sends a message, setting Message.BeforeSend to BeforeSend
and Message.AfterSend to AfterSend.
4. Receives the message and calls MessageCheck. 5. Calls TopicErrorCheck. 6. Calls SubscriptionErrorCheck.
type Harness ¶
type Harness interface { // CreateTopic creates a new topic and returns a driver.Topic // for testing. The topic may have to be removed manually if the test is // abruptly terminated or the network connection fails. CreateTopic(ctx context.Context, testName string) (dt driver.Topic, cleanup func(), err error) // MakeNonexistentTopic makes a driver.Topic referencing a topic that // does not exist. MakeNonexistentTopic(ctx context.Context) (driver.Topic, error) // CreateSubscription creates a new subscription, subscribed // to the given topic, and returns a driver.Subscription for testing. The // subscription may have to be cleaned up manually if the test is abruptly // terminated or the network connection fails. CreateSubscription(ctx context.Context, t driver.Topic, testName string) (ds driver.Subscription, cleanup func(), err error) // MakeNonexistentSubscription makes a driver.Subscription referencing a // subscription that does not exist. MakeNonexistentSubscription(ctx context.Context) (ds driver.Subscription, cleanup func(), err error) // Close closes resources used by the harness, but does not call Close // on the Topics and Subscriptions generated by the Harness. Close() // MaxBatchSizes returns the maximum size of SendBatch/Send(Na|A)cks, or 0 // if there's no max. MaxBatchSizes() (int, int) // SupportsMultipleSubscriptions reports whether the driver supports // multiple subscriptions for the same topic. SupportsMultipleSubscriptions() bool }
Harness descibes the functionality test harnesses must provide to run conformance tests.
Click to show internal directories.
Click to hide internal directories.