12345678910111213141516171819202122232425262728293031323334353637 |
- package testutils
- import (
- "math/rand"
- "testing"
- "time"
- )
- const chars = "abcdefghijklmnopqrstuvwxyz" +
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
- "~!@#$%^&*()-_+={}[]\\|<,>.?/\"';:` "
- // Timeout calls f and waits for 100ms for it to complete.
- // If it doesn't, it causes the tests to fail.
- // t must be a valid testing context.
- func Timeout(t *testing.T, f func()) {
- onTimeout := time.After(100 * time.Millisecond)
- onDone := make(chan bool)
- go func() {
- f()
- close(onDone)
- }()
- select {
- case <-onTimeout:
- t.Fatalf("timeout")
- case <-onDone:
- }
- }
- // RandomString returns random string of specified length
- func RandomString(length int) string {
- res := make([]byte, length)
- for i := 0; i < length; i++ {
- res[i] = chars[rand.Intn(len(chars))]
- }
- return string(res)
- }
|