OSDN Git Service

Hulk did something
[bytom/vapor.git] / testutil / expect.go
diff --git a/testutil/expect.go b/testutil/expect.go
new file mode 100644 (file)
index 0000000..9d0ac38
--- /dev/null
@@ -0,0 +1,27 @@
+package testutil
+
+import (
+       "fmt"
+       "os"
+       "path/filepath"
+       "strings"
+       "testing"
+
+       "github.com/vapor/errors"
+)
+
+var wd, _ = os.Getwd()
+
+func FatalErr(t testing.TB, err error) {
+       args := []interface{}{err}
+       for _, frame := range errors.Stack(err) {
+               file := frame.File
+               if rel, err := filepath.Rel(wd, file); err == nil && !strings.HasPrefix(rel, "../") {
+                       file = rel
+               }
+               funcname := frame.Func[strings.IndexByte(frame.Func, '.')+1:]
+               s := fmt.Sprintf("\n%s:%d: %s", file, frame.Line, funcname)
+               args = append(args, s)
+       }
+       t.Fatal(args...)
+}