Files
eiblog/vendor/github.com/qiniu/x/ts.v7/testing.go
2017-07-11 23:50:01 +08:00

80 lines
1.9 KiB
Go

package ts
import (
"fmt"
"os"
"path/filepath"
"runtime"
"strconv"
"testing"
)
const logStackLevel = 2
func log(skip int, t *testing.T, args ...interface{}) {
_, file, line, _ := runtime.Caller(skip)
_, fname := filepath.Split(file)
args1 := make([]interface{}, len(args)+1)
args1[0] = fname + ":" + strconv.Itoa(line) + ":"
copy(args1[1:], args)
if os.PathSeparator == '/' {
fmt.Fprintln(os.Stdout, args1...)
} else {
t.Log(args1...)
}
}
func logf(skip int, t *testing.T, format string, args ...interface{}) {
_, file, line, _ := runtime.Caller(skip)
_, fname := filepath.Split(file)
args2 := make([]interface{}, len(args)+2)
args2[0] = fname
args2[1] = line
copy(args2[2:], args)
if os.PathSeparator == '/' {
fmt.Fprintf(os.Stderr, "%s:%d: "+format+"\n", args2...)
} else {
t.Logf("%s:%d: "+format, args2...)
}
}
// Log formats its arguments using default formatting, analogous to Print(),
// and records the text in the error log.
func Log(t *testing.T, args ...interface{}) {
log(logStackLevel, t, args...)
}
// Logf formats its arguments according to the format, analogous to Printf(),
// and records the text in the error log.
func Logf(t *testing.T, format string, args ...interface{}) {
logf(logStackLevel, t, format, args...)
}
// Error is equivalent to Log() followed by Fail().
func Error(t *testing.T, args ...interface{}) {
log(logStackLevel, t, args...)
t.Fail()
}
// Errorf is equivalent to Logf() followed by Fail().
func Errorf(t *testing.T, format string, args ...interface{}) {
logf(logStackLevel, t, format, args...)
t.Fail()
}
// Fatal is equivalent to Log() followed by FailNow().
func Fatal(t *testing.T, args ...interface{}) {
log(logStackLevel, t, args...)
t.FailNow()
}
// Fatalf is equivalent to Logf() followed by FailNow().
func Fatalf(t *testing.T, format string, args ...interface{}) {
logf(logStackLevel, t, format, args...)
t.FailNow()
}