package requirement // import "github.com/docker/docker/integration-cli/requirement" import ( "path" "reflect" "runtime" "strings" "testing" ) // Test represent a function that can be used as a requirement validation. type Test func() bool // Is checks if the environment satisfies the requirements // for the test to run or skips the tests. func Is(t *testing.T, requirements ...Test) { t.Helper() for _, r := range requirements { isValid := r() if !isValid { requirementFunc := runtime.FuncForPC(reflect.ValueOf(r).Pointer()).Name() t.Skipf("unmatched requirement %s", extractRequirement(requirementFunc)) } } } func extractRequirement(requirementFunc string) string { requirement := path.Base(requirementFunc) return strings.SplitN(requirement, ".", 2)[1] }