mirror of https://github.com/golang/go.git
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: Damien Neil <dneil@google.com>
This commit is contained in:
parent
f6695a15e1
commit
b6fb6673bc
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue