123456789101112131415161718192021222324252627282930 |
- 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]
- }
|