Return error on input in GetValueFromIntOrPercent

This commit is contained in:
Maciej Szulik 2018-08-16 11:26:16 +02:00
parent dbe3b1a3b3
commit 3d7c589f05
No known key found for this signature in database
GPG Key ID: F15E55D276FA84C4
2 changed files with 18 additions and 0 deletions

View File

@ -18,6 +18,7 @@ package intstr
import (
"encoding/json"
"errors"
"fmt"
"math"
"runtime/debug"
@ -142,7 +143,17 @@ func (intstr *IntOrString) Fuzz(c fuzz.Continue) {
}
}
func ValueOrDefault(intOrPercent *IntOrString, defaultValue IntOrString) *IntOrString {
if intOrPercent == nil {
return &defaultValue
}
return intOrPercent
}
func GetValueFromIntOrPercent(intOrPercent *IntOrString, total int, roundUp bool) (int, error) {
if intOrPercent == nil {
return 0, errors.New("nil value for IntOrString")
}
value, isPercent, err := getIntOrPercentValue(intOrPercent)
if err != nil {
return 0, fmt.Errorf("invalid value for IntOrString: %v", err)

View File

@ -174,3 +174,10 @@ func TestGetValueFromIntOrPercent(t *testing.T) {
}
}
}
func TestGetValueFromIntOrPercentNil(t *testing.T) {
_, err := GetValueFromIntOrPercent(nil, 0, false)
if err == nil {
t.Errorf("expected error got none")
}
}