You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
935 B
38 lines
935 B
3 years ago
|
package testutil
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"runtime"
|
||
|
"strconv"
|
||
|
"strings"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
// SkipExternal skips current test if GOTD_TEST_EXTERNAL is not 1.
|
||
|
//
|
||
|
// Caller should be high-level test function with TestExternalE2E prefix,
|
||
|
// like TestExternalE2EConnect.
|
||
|
//
|
||
|
// Run all tests with following command in module root:
|
||
|
// GOTD_TEST_EXTERNAL=1 go test -v -run ^TestExternalE2E ./...
|
||
|
func SkipExternal(tb testing.TB) {
|
||
|
const env = "GOTD_TEST_EXTERNAL"
|
||
|
|
||
|
tb.Helper()
|
||
|
|
||
|
{
|
||
|
// Checking caller prefix.
|
||
|
const expectedPrefix = "TestExternalE2E"
|
||
|
pc, _, _, _ := runtime.Caller(1)
|
||
|
details := runtime.FuncForPC(pc)
|
||
|
name := details.Name()[strings.LastIndex(details.Name(), ".")+1:]
|
||
|
if !strings.HasPrefix(name, expectedPrefix) {
|
||
|
tb.Fatalf("Test function %s should have prefix %s.", name, expectedPrefix)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ok, _ := strconv.ParseBool(os.Getenv(env)); !ok {
|
||
|
tb.Skipf("Skipped. Set %s=1 to enable external e2e test.", env)
|
||
|
}
|
||
|
}
|