mirror of https://github.com/golang/go.git
strconv: fix function name in errors for Atoi
Fixes #16980 Change-Id: I902a02b157c2c7d1772f5122b850dc48b1d7a224 Reviewed-on: https://go-review.googlesource.com/28474 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
be8a1c6139
commit
3a67d595f5
|
|
@ -199,6 +199,10 @@ func ParseInt(s string, base int, bitSize int) (i int64, err error) {
|
|||
|
||||
// Atoi returns the result of ParseInt(s, 10, 0) converted to type int.
|
||||
func Atoi(s string) (int, error) {
|
||||
const fnAtoi = "Atoi"
|
||||
i64, err := ParseInt(s, 10, 0)
|
||||
if nerr, ok := err.(*NumError); ok {
|
||||
nerr.Func = fnAtoi
|
||||
}
|
||||
return int(i64), err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,3 +55,34 @@ func TestCountMallocs(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestErrorPrefixes(t *testing.T) {
|
||||
_, errInt := Atoi("INVALID")
|
||||
_, errBool := ParseBool("INVALID")
|
||||
_, errFloat := ParseFloat("INVALID", 64)
|
||||
_, errInt64 := ParseInt("INVALID", 10, 64)
|
||||
_, errUint64 := ParseUint("INVALID", 10, 64)
|
||||
|
||||
vectors := []struct {
|
||||
err error // Input error
|
||||
want string // Function name wanted
|
||||
}{
|
||||
{errInt, "Atoi"},
|
||||
{errBool, "ParseBool"},
|
||||
{errFloat, "ParseFloat"},
|
||||
{errInt64, "ParseInt"},
|
||||
{errUint64, "ParseUint"},
|
||||
}
|
||||
|
||||
for _, v := range vectors {
|
||||
nerr, ok := v.err.(*NumError)
|
||||
if !ok {
|
||||
t.Errorf("test %s, error was not a *NumError", v.want)
|
||||
continue
|
||||
}
|
||||
if got := nerr.Func; got != v.want {
|
||||
t.Errorf("mismatching Func: got %s, want %s", got, v.want)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue