Fix common.MultiStringFlagVar.
Also add unit test.
Change-Id: I533f3f9d4fb1c589dbdeb79e9eac7b3287cf17a7
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/588726
Reviewed-by: Eric Boren <borenet@google.com>
Auto-Submit: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
diff --git a/go/common/common.go b/go/common/common.go
index e8cd3d7..1c253cc 100644
--- a/go/common/common.go
+++ b/go/common/common.go
@@ -157,7 +157,7 @@
// defaults, and usage string. The argument target points to a []string
// variable in which to store the values of the flag.
func MultiStringFlagVar(target *[]string, name string, defaults []string, usage string) {
- FSNewMultiStringFlag(flag.CommandLine, name, defaults, usage)
+ FSMultiStringFlagVar(flag.CommandLine, target, name, defaults, usage)
}
// String() returns the current values of multiString, as a comma separated list
diff --git a/go/common/common_test.go b/go/common/common_test.go
index 8d1262c..a03da9f 100644
--- a/go/common/common_test.go
+++ b/go/common/common_test.go
@@ -2,6 +2,7 @@
import (
"flag"
+ "os"
"reflect"
"testing"
@@ -71,3 +72,16 @@
}
require.Equal(t, "", z.Interface().(flag.Value).String())
}
+
+const (
+ testFlagName = "my-test-flag"
+)
+
+func TestMultiStringFlagVar_FlagProvided_FlagValuesOverwriteDefaults(t *testing.T) {
+ target := []string{}
+ defaults := []string{"foo", "bar"}
+ MultiStringFlagVar(&target, testFlagName, defaults, "")
+ os.Args = []string{"exe", "--my-test-flag=baz"}
+ flag.Parse()
+ require.Equal(t, []string{"baz"}, target)
+}