package errors import ( "fmt" "io" "testing" ) func TestFormat(t *testing.T) { tests := []struct { error format string want string }{{ New("error"), "%s", "error", }, { New("error"), "%v", "error", }, { New("error"), "%+v", "github.com/pkg/errors/format_test.go:24: error", }, { Errorf("%s", "error"), "%s", "error", }, { Errorf("%s", "error"), "%v", "error", }, { Errorf("%s", "error"), "%+v", "github.com/pkg/errors/format_test.go:36: error", }, { Wrap(New("error"), "error2"), "%s", "error2: error", }, { Wrap(New("error"), "error2"), "%v", "error2: error", }, { Wrap(New("error"), "error2"), "%+v", "github.com/pkg/errors/format_test.go:48: error\n" + "github.com/pkg/errors/format_test.go:48: error2", }, { Wrap(io.EOF, "error"), "%s", "error: EOF", }, { Wrapf(New("error"), "error%d", 2), "%s", "error2: error", }, { Wrap(io.EOF, "error"), "%v", "error: EOF", }, { Wrap(io.EOF, "error"), "%+v", "EOF\n" + "github.com/pkg/errors/format_test.go:65: error", }, { Wrapf(New("error"), "error%d", 2), "%v", "error2: error", }, { Wrapf(New("error"), "error%d", 2), "%+v", "github.com/pkg/errors/format_test.go:74: error\n" + "github.com/pkg/errors/format_test.go:74: error2", }} for _, tt := range tests { got := fmt.Sprintf(tt.format, tt.error) if got != tt.want { t.Errorf("fmt.Sprintf(%q, err): got: %q, want: %q", tt.format, got, tt.want) } } }