Documentation ¶
Overview ¶
Package testutil provides test helpers for the golang-samples repo.
Index ¶
- func CleanBucket(ctx context.Context, t *testing.T, projectID, bucket string) error
- func CreateTestBucket(ctx context.Context, t *testing.T, client *storage.Client, ...) (string, error)
- func DeleteBucketIfExists(ctx context.Context, client *storage.Client, bucket string) error
- func DeleteExpiredBuckets(client *storage.Client, projectID, prefix string, expireAge time.Duration) error
- func Retry(t *testing.T, maxAttempts int, sleep time.Duration, f func(r *R)) bool
- func RetryWithoutTest(maxAttempts int, sleep time.Duration, f func(r *R)) bool
- func UniqueBucketName(prefix string) string
- func WaitForBucketToExist(ctx context.Context, t *testing.T, b *storage.BucketHandle)
- type Context
- type R
- type Runner
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CleanBucket ¶
CleanBucket creates a new bucket. If the bucket already exists, it will be deleted and recreated.
func CreateTestBucket ¶
func CreateTestBucket(ctx context.Context, t *testing.T, client *storage.Client, projectID, prefix string) (string, error)
CreateTestBucket creates a new bucket with the given prefix
func DeleteBucketIfExists ¶
DeleteBucketIfExists deletes a bucket and all its objects
func DeleteExpiredBuckets ¶
func DeleteExpiredBuckets(client *storage.Client, projectID, prefix string, expireAge time.Duration) error
DeleteExpiredBuckets deletes old testing buckets that weren't cleaned previously
func Retry ¶
Retry runs function f for up to maxAttempts times until f returns successfully, and reports whether f was run successfully. It will sleep for the given period between invocations of f. Use the provided *testutil.R instead of a *testing.T from the function.
func RetryWithoutTest ¶
RetryWithoutTest is a variant of Retry that does not use a testing parameter. It is meant for testing utilities that do not pass around the testing context, such as cloudrunci.
func UniqueBucketName ¶
UniqueBucketName returns a unique name with the test prefix Any bucket created with this prefix may be deleted by DeleteExpiredBuckets
func WaitForBucketToExist ¶
WaitForBucketToExist waits for a bucket to exist, as it can take time to propagate Errors after 10 unsuccessful attempts at retrieving the bucket's attrs
Types ¶
type Context ¶
Context holds information useful for tests.
func ContextMain ¶
ContextMain gets a test context from a TestMain function. Useful for initializing global variables before running parallel system tests. ok is false if the project is not set up properly for system tests.
func EndToEndTest ¶
EndToEndTest gets the test context, and sets the test as Parallel. The test is skipped if the GOLANG_SAMPLES_E2E_TEST environment variable is not set.
func SystemTest ¶
SystemTest gets the test context. The test is skipped if the GOLANG_SAMPLES_PROJECT_ID environment variable is not set.
type R ¶
type R struct { // The number of current attempt. Attempt int // contains filtered or unexported fields }
R is passed to each run of a flaky test run, manages state and accumulates log statements.
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner holds the result of `go build`
func BuildMain ¶
BuildMain builds the main package in the current working directory. If it doesn't build, t.Fatal is called. Test methods calling BuildMain should run Runner.Cleanup.
func (*Runner) Run ¶
func (r *Runner) Run(env map[string]string, timeout time.Duration, args ...string) (stdout, stderr []byte, err error)
Run executes runs the built binary until terminated or timeout has been reached, and indicates successful execution on return. You can supply extra arguments for the binary via args.