terraform-provider-gitea/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugintest/guard.go
Tobias Trabelsi e1266ebf64
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
continuous-integration/drone/push Build encountered an error
updated GHA
Update to v2 SDK
updated dependencies
2022-08-06 16:21:18 +02:00

50 lines
1.4 KiB
Go

package plugintest
import (
"fmt"
)
// TestControl is an interface requiring a subset of *testing.T which is used
// by the test guards and helpers in this package. Most callers can simply
// pass their *testing.T value here, but the interface allows other
// implementations to potentially be provided instead, for example to allow
// meta-testing (testing of the test utilities themselves).
//
// This interface also describes the subset of normal test functionality the
// guards and helpers can perform: they can only create log lines, fail tests,
// and skip tests. All other test control is the responsibility of the main
// test code.
type TestControl interface {
Helper()
Log(args ...interface{})
FailNow()
SkipNow()
Name() string
}
// testingT wraps a TestControl to recover some of the convenience behaviors
// that would normally come from a real *testing.T, so we can keep TestControl
// small while still having these conveniences. This is an abstraction
// inversion, but accepted because it makes the public API more convenient
// without any considerable disadvantage.
type testingT struct {
TestControl
}
func (t testingT) Logf(f string, args ...interface{}) {
t.Helper()
t.Log(fmt.Sprintf(f, args...))
}
func (t testingT) Fatalf(f string, args ...interface{}) {
t.Helper()
t.Log(fmt.Sprintf(f, args...))
t.FailNow()
}
func (t testingT) Skipf(f string, args ...interface{}) {
t.Helper()
t.Log(fmt.Sprintf(f, args...))
t.SkipNow()
}