Commit 3a67d595 authored by Joe Tsai's avatar Joe Tsai Committed by Joe Tsai

strconv: fix function name in errors for Atoi

Fixes #16980

Change-Id: I902a02b157c2c7d1772f5122b850dc48b1d7a224
Reviewed-on: https://go-review.googlesource.com/28474Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent be8a1c61
......@@ -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)
}
}
}
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