mirror of
https://github.com/opentofu/opentofu.git
synced 2025-01-08 15:13:56 -06:00
e916bd1527
Generate bucket names and object names per test instead of once at the top level. Should help avoid failures like this one: https://travis-ci.org/hashicorp/terraform/jobs/100254008 All storage tests checked on this commit: ``` TF_ACC=1 go test -v ./builtin/providers/google -run TestAccGoogleStorage === RUN TestAccGoogleStorageBucketAcl_basic --- PASS: TestAccGoogleStorageBucketAcl_basic (8.90s) === RUN TestAccGoogleStorageBucketAcl_upgrade --- PASS: TestAccGoogleStorageBucketAcl_upgrade (14.18s) === RUN TestAccGoogleStorageBucketAcl_downgrade --- PASS: TestAccGoogleStorageBucketAcl_downgrade (12.83s) === RUN TestAccGoogleStorageBucketAcl_predefined --- PASS: TestAccGoogleStorageBucketAcl_predefined (4.51s) === RUN TestAccGoogleStorageObject_basic --- PASS: TestAccGoogleStorageObject_basic (3.77s) === RUN TestAccGoogleStorageObjectAcl_basic --- PASS: TestAccGoogleStorageObjectAcl_basic (4.85s) === RUN TestAccGoogleStorageObjectAcl_upgrade --- PASS: TestAccGoogleStorageObjectAcl_upgrade (7.68s) === RUN TestAccGoogleStorageObjectAcl_downgrade --- PASS: TestAccGoogleStorageObjectAcl_downgrade (7.37s) === RUN TestAccGoogleStorageObjectAcl_predefined --- PASS: TestAccGoogleStorageObjectAcl_predefined (4.16s) PASS ok github.com/hashicorp/terraform/builtin/providers/google 68.275s ```
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package acctest
|
|
|
|
import (
|
|
"math/rand"
|
|
"time"
|
|
)
|
|
|
|
// Helpers for generating random tidbits for use in identifiers to prevent
|
|
// collisions in acceptance tests.
|
|
|
|
// RandInt generates a random integer
|
|
func RandInt() int {
|
|
reseed()
|
|
return rand.New(rand.NewSource(time.Now().UnixNano())).Int()
|
|
}
|
|
|
|
// RandString generates a random alphanumeric string of the length specified
|
|
func RandString(strlen int) string {
|
|
return RandStringFromCharSet(strlen, CharSetAlphaNum)
|
|
}
|
|
|
|
// RandStringFromCharSet generates a random string by selecting characters from
|
|
// the charset provided
|
|
func RandStringFromCharSet(strlen int, charSet string) string {
|
|
reseed()
|
|
result := make([]byte, strlen)
|
|
for i := 0; i < strlen; i++ {
|
|
result[i] = charSet[rand.Intn(len(charSet))]
|
|
}
|
|
return string(result)
|
|
}
|
|
|
|
// Seeds random with current timestamp
|
|
func reseed() {
|
|
rand.Seed(time.Now().UTC().UnixNano())
|
|
}
|
|
|
|
const (
|
|
// CharSetAlphaNum is the alphanumeric character set for use with
|
|
// RandStringFromCharSet
|
|
CharSetAlphaNum = "abcdefghijklmnopqrstuvwxyz012346789"
|
|
|
|
// CharSetAlpha is the alphabetical character set for use with
|
|
// RandStringFromCharSet
|
|
CharSetAlpha = "abcdefghijklmnopqrstuvwxyz"
|
|
)
|