diff options
| author | Grégoire Duchêne <gduchene@awhk.org> | 2022-06-26 00:31:10 +0100 |
|---|---|---|
| committer | Grégoire Duchêne <gduchene@awhk.org> | 2022-06-26 00:31:10 +0100 |
| commit | a99d7b7e2c57380fbcf85c571194df26d86f9d76 (patch) | |
| tree | 8be0b4e9980de6718bc9dd69de7a165566d5d37b /flag_test.go | |
| parent | 41a47c757dca86ec0684b060bdd1d3c4d55cc81f (diff) | |
Add a few flag helper functions
Diffstat (limited to 'flag_test.go')
| -rw-r--r-- | flag_test.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/flag_test.go b/flag_test.go new file mode 100644 index 0000000..56711d5 --- /dev/null +++ b/flag_test.go @@ -0,0 +1,50 @@ +// SPDX-FileCopyrightText: © 2022 Grégoire Duchêne <gduchene@awhk.org> +// SPDX-License-Identifier: ISC + +package core_test + +import ( + "flag" + "strconv" + "testing" + + "go.awhk.org/core" +) + +func TestFlagVar(s *testing.T) { + t := core.T{T: s} + + fs := flag.NewFlagSet("", flag.ContinueOnError) + fl := core.FlagVar(fs, "test", "", strconv.ParseBool) + t.AssertErrorIs(nil, fs.Parse([]string{"-test=true"})) + t.AssertEqual(true, *fl) +} + +func TestFlagVarPtr(s *testing.T) { + t := core.T{T: s} + + fs := flag.NewFlagSet("", flag.ContinueOnError) + fl := false + core.FlagVarPtr(fs, "test", "", strconv.ParseBool, &fl) + t.AssertErrorIs(nil, fs.Parse([]string{"-test=true"})) + t.AssertEqual(true, fl) +} + +func TestFlagVarSlice(s *testing.T) { + t := core.T{T: s} + + fs := flag.NewFlagSet("", flag.ContinueOnError) + fl := core.FlagVarSlice(fs, "test", "", strconv.Atoi) + t.AssertErrorIs(nil, fs.Parse([]string{"-test=1", "-test=2", "-test=42"})) + t.AssertEqual([]int{1, 2, 42}, *fl) +} + +func TestFlagVarSlicePtr(s *testing.T) { + t := core.T{T: s} + + fs := flag.NewFlagSet("", flag.ContinueOnError) + fl := []int{} + core.FlagVarSlicePtr(fs, "test", "", strconv.Atoi, &fl) + t.AssertErrorIs(nil, fs.Parse([]string{"-test=1", "-test=2", "-test=42"})) + t.AssertEqual([]int{1, 2, 42}, fl) +} |
