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.
37 lines
935 B
37 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) |
|
} |
|
}
|
|
|