Package poll provides tools for testing asynchronous code.




    This section is empty.


    This section is empty.


    func WaitOn

    func WaitOn(t TestingT, check Check, pollOps ...SettingOp)

      WaitOn a condition or until a timeout. Poll by calling check and exit when check returns a done Result. To fail a test and exit polling with an error return a error result.



      type Check

      type Check func(t LogT) Result

        Check is a function which will be used as check for the WaitOn method.

        func Connection

        func Connection(network, address string) Check

          Connection try to open a connection to the address on the named network. See net.Dial for a description of the network and address parameters.

          func FileExists

          func FileExists(path string) Check

            FileExists looks on filesystem and check that path exists.

            type LogT

            type LogT interface {
            	Log(args ...interface{})
            	Logf(format string, args ...interface{})

              LogT is a logging interface that is passed to the WaitOn check function

              type Result

              type Result interface {
              	// Error indicates that the check failed and polling should stop, and the
              	// the has failed
              	Error() error
              	// Done indicates that polling should stop, and the test should proceed
              	Done() bool
              	// Message provides the most recent state when polling has not completed
              	Message() string

                Result of a check performed by WaitOn

                func Compare

                func Compare(compare cmp.Comparison) Result

                  Compare values using the cmp.Comparison. If the comparison fails return a result which indicates to WaitOn that it should continue waiting. If the comparison is successful then WaitOn stops polling.

                  func Continue

                  func Continue(message string, args ...interface{}) Result

                    Continue returns a Result that indicates to WaitOn that it should continue polling. The message text will be used as the failure message if the timeout is reached.

                    func Error

                    func Error(err error) Result

                      Error returns a Result that indicates to WaitOn that it should fail the test and stop polling.

                      func Success

                      func Success() Result

                        Success returns a Result where Done() returns true, which indicates to WaitOn that it should stop polling and exit without an error.

                        type SettingOp

                        type SettingOp func(config *Settings)

                          SettingOp is a function which accepts and modifies Settings


                          func WithDelay

                          func WithDelay(delay time.Duration) SettingOp

                            WithDelay sets the delay to wait between polls

                            func WithTimeout

                            func WithTimeout(timeout time.Duration) SettingOp

                              WithTimeout sets the timeout

                              type Settings

                              type Settings struct {
                              	// Timeout is the maximum time to wait for the condition. Defaults to 10s.
                              	Timeout time.Duration
                              	// Delay is the time to sleep between checking the condition. Defaults to
                              	// 100ms.
                              	Delay time.Duration

                                Settings are used to configure the behaviour of WaitOn

                                type TestingT

                                type TestingT interface {
                                	Fatalf(format string, args ...interface{})

                                  TestingT is the subset of testing.T used by WaitOn

                                  Source Files