influxdb/pkg/testing/assert/helper.go

56 lines
1.1 KiB
Go
Raw Normal View History

2018-11-29 16:25:46 +00:00
package assert
import (
"fmt"
"reflect"
)
func fail(t TestingT, failureMsg string, msgAndArgs ...interface{}) bool {
if th, ok := t.(helper); ok {
th.Helper()
}
msg := formatMsgAndArgs(msgAndArgs...)
if msg == "" {
t.Errorf("%s", failureMsg)
} else {
t.Errorf("%s: %s", failureMsg, msg)
}
return false
}
func formatValues(got, expected interface{}) (string, string) {
if reflect.TypeOf(got) != reflect.TypeOf(expected) {
return fmt.Sprintf("%T(%#v)", got, got), fmt.Sprintf("%T(%#v)", expected, expected)
}
return fmt.Sprintf("%#v", got), fmt.Sprintf("%#v", expected)
}
func formatMsgAndArgs(msgAndArgs ...interface{}) string {
if len(msgAndArgs) == 0 || msgAndArgs == nil {
return ""
}
if len(msgAndArgs) == 1 {
return msgAndArgs[0].(string)
}
if len(msgAndArgs) > 1 {
return fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...)
}
return ""
}
// didPanic returns true if fn panics when called.
func didPanic(fn PanicTestFunc) (panicked bool, message interface{}) {
defer func() {
if message = recover(); message != nil {
panicked = true
}
}()
fn()
return panicked, message
}