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

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)
}
}