|
@@ -0,0 +1,51 @@
|
|
|
|
|
+package errors
|
|
|
|
|
+
|
|
|
|
|
+import (
|
|
|
|
|
+ "encoding/json"
|
|
|
|
|
+ "regexp"
|
|
|
|
|
+ "testing"
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+func TestFrameMarshalText(t *testing.T) {
|
|
|
|
|
+ var tests = []struct {
|
|
|
|
|
+ Frame
|
|
|
|
|
+ want string
|
|
|
|
|
+ }{{
|
|
|
|
|
+ initpc,
|
|
|
|
|
+ `^github.com/pkg/errors\.init(\.ializers)? .+/github\.com/pkg/errors/stack_test.go:\d+$`,
|
|
|
|
|
+ }, {
|
|
|
|
|
+ 0,
|
|
|
|
|
+ `^unknown$`,
|
|
|
|
|
+ }}
|
|
|
|
|
+ for i, tt := range tests {
|
|
|
|
|
+ got, err := tt.Frame.MarshalText()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatal(err)
|
|
|
|
|
+ }
|
|
|
|
|
+ if !regexp.MustCompile(tt.want).Match(got) {
|
|
|
|
|
+ t.Errorf("test %d: MarshalJSON:\n got %q\n want %q", i+1, string(got), tt.want)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func TestFrameMarshalJSON(t *testing.T) {
|
|
|
|
|
+ var tests = []struct {
|
|
|
|
|
+ Frame
|
|
|
|
|
+ want string
|
|
|
|
|
+ }{{
|
|
|
|
|
+ initpc,
|
|
|
|
|
+ `^"github\.com/pkg/errors\.init(\.ializers)? .+/github\.com/pkg/errors/stack_test.go:\d+"$`,
|
|
|
|
|
+ }, {
|
|
|
|
|
+ 0,
|
|
|
|
|
+ `^"unknown"$`,
|
|
|
|
|
+ }}
|
|
|
|
|
+ for i, tt := range tests {
|
|
|
|
|
+ got, err := json.Marshal(tt.Frame)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatal(err)
|
|
|
|
|
+ }
|
|
|
|
|
+ if !regexp.MustCompile(tt.want).Match(got) {
|
|
|
|
|
+ t.Errorf("test %d: MarshalJSON:\n got %q\n want %q", i+1, string(got), tt.want)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|