45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
// +build integration
|
|
|
|
// Package integration performs initialization and validation for integration
|
|
// tests.
|
|
package integration
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
"github.com/aws/aws-sdk-go/aws/session"
|
|
)
|
|
|
|
// Session is a shared session for all integration tests to use.
|
|
var Session = session.Must(session.NewSession())
|
|
|
|
func init() {
|
|
logLevel := Session.Config.LogLevel
|
|
if os.Getenv("DEBUG") != "" {
|
|
logLevel = aws.LogLevel(aws.LogDebug)
|
|
}
|
|
if os.Getenv("DEBUG_SIGNING") != "" {
|
|
logLevel = aws.LogLevel(aws.LogDebugWithSigning)
|
|
}
|
|
if os.Getenv("DEBUG_BODY") != "" {
|
|
logLevel = aws.LogLevel(aws.LogDebugWithSigning | aws.LogDebugWithHTTPBody)
|
|
}
|
|
Session.Config.LogLevel = logLevel
|
|
|
|
if aws.StringValue(Session.Config.Region) == "" {
|
|
panic("AWS_REGION must be configured to run integration tests")
|
|
}
|
|
}
|
|
|
|
// UniqueID returns a unique UUID-like identifier for use in generating
|
|
// resources for integration tests.
|
|
func UniqueID() string {
|
|
uuid := make([]byte, 16)
|
|
io.ReadFull(rand.Reader, uuid)
|
|
return fmt.Sprintf("%x", uuid)
|
|
}
|