From 88a31dd533151cd07b309f31740636bccff325a9 Mon Sep 17 00:00:00 2001 From: DanB Date: Mon, 20 Aug 2018 13:21:06 +0200 Subject: [PATCH] reflect.IfaceToDuration to consider float64 as nanoseconds since also ints are converted to float --- utils/reflect.go | 4 ++-- utils/reflect_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/utils/reflect.go b/utils/reflect.go index f18a4e539..bd03ef5d9 100644 --- a/utils/reflect.go +++ b/utils/reflect.go @@ -169,8 +169,8 @@ func IfaceAsDuration(itm interface{}) (d time.Duration, err error) { switch itm.(type) { case time.Duration: return itm.(time.Duration), nil - case float64: - return time.Duration(int64(itm.(float64) * float64(time.Second))), nil + case float64: // automatically hitting here also ints + return time.Duration(int64(itm.(float64))), nil case int64: return time.Duration(itm.(int64)), nil case string: diff --git a/utils/reflect_test.go b/utils/reflect_test.go index 40ee23498..5d1d49eb8 100644 --- a/utils/reflect_test.go +++ b/utils/reflect_test.go @@ -277,7 +277,7 @@ func TestIfaceAsDuration(t *testing.T) { } else if eItm != itmConvert { t.Errorf("received: %+v", itmConvert) } - if itmConvert, err := IfaceAsDuration(interface{}(float64(1.0))); err != nil { + if itmConvert, err := IfaceAsDuration(interface{}(float64(1000000000.0))); err != nil { t.Error(err) } else if eItm != itmConvert { t.Errorf("received: %+v", itmConvert)