Commit b6fb6673 authored by Marcel van Lohuizen's avatar Marcel van Lohuizen

fmt: refined tests for non-string error verbs

This is a refinement of CL 164557.

Make it explicit in tests that using a non-string verb with
fmtError does not result in falling back to using fmt.Formatter.

Change-Id: I6d090f31818eb7cc7668d7565b1449c91cd03a23
Reviewed-on: https://go-review.googlesource.com/c/go/+/164701
Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarDamien Neil <dneil@google.com>
parent f6695a15
......@@ -353,6 +353,10 @@ func TestErrorFormatter(t *testing.T) {
err: intError(4),
fmt: "%d",
want: "4",
}, {
err: intError(4),
fmt: "%🤪",
want: "%!🤪(fmt_test.intError=4)",
}}
for i, tc := range testCases {
t.Run(fmt.Sprintf("%d/%s", i, tc.fmt), func(t *testing.T) {
......@@ -446,6 +450,12 @@ type intError int
func (e intError) Error() string { return fmt.Sprint(e) }
func (e wrapped) Format(w fmt.State, r rune) {
// Test that the normal fallback handling after handleMethod for
// non-string verbs is used. This path should not be reached.
fmt.Fprintf(w, "Unreachable: %d", e)
}
func (e intError) FormatError(p errors.Printer) (next error) {
p.Printf("error %d", e)
return nil
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment