diff options
Diffstat (limited to 'vendor/github.com/pborman/getopt/v2/generic_test.go')
-rw-r--r-- | vendor/github.com/pborman/getopt/v2/generic_test.go | 319 |
1 files changed, 0 insertions, 319 deletions
diff --git a/vendor/github.com/pborman/getopt/v2/generic_test.go b/vendor/github.com/pborman/getopt/v2/generic_test.go deleted file mode 100644 index 9a247ec..0000000 --- a/vendor/github.com/pborman/getopt/v2/generic_test.go +++ /dev/null @@ -1,319 +0,0 @@ -// Copyright 2017 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package getopt - -import ( - "bytes" - "fmt" - "os" - "reflect" - "runtime" - "strings" - "testing" - "time" -) - -func TestGeneric(t *testing.T) { - const ( - shortTest = iota - longTest - bothTest - ) - for _, tt := range []struct { - where string - kind int - val interface{} - str string - def interface{} - in []string - err string - }{ - // Do all four tests for string, the rest can mostly just use - // shortTest (the 0 value). - { - where: loc(), - kind: shortTest, - val: "42", - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - kind: longTest, - val: "42", - str: "42", - in: []string{"test", "--long", "42"}, - }, - { - where: loc(), - kind: bothTest, - val: "42", - str: "42", - in: []string{"test", "--both", "42"}, - }, - { - where: loc(), - kind: bothTest, - val: "42", - str: "42", - in: []string{"test", "-b", "42"}, - }, - { - where: loc(), - val: "42", - def: "42", - str: "42", - in: []string{"test"}, - }, - { - where: loc(), - val: "42", - def: "43", - str: "42", - in: []string{"test", "-s", "42"}, - }, - - { - where: loc(), - val: true, - str: "true", - in: []string{"test", "-s"}, - }, - { - where: loc(), - val: true, - def: true, - str: "true", - in: []string{"test"}, - }, - { - where: loc(), - kind: longTest, - val: false, - str: "false", - in: []string{"test", "--long=false"}, - }, - { - where: loc(), - kind: longTest, - val: false, - def: true, - str: "false", - in: []string{"test", "--long=false"}, - }, - - { - where: loc(), - val: int(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - val: int8(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - val: int16(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - val: int32(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - val: int64(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - - { - where: loc(), - val: uint(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - val: uint8(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - val: uint16(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - val: uint32(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - { - where: loc(), - val: uint64(42), - str: "42", - in: []string{"test", "-s", "42"}, - }, - - { - where: loc(), - val: float32(4.2), - str: "4.2", - in: []string{"test", "-s", "4.2"}, - }, - { - where: loc(), - val: float64(4.2), - str: "4.2", - in: []string{"test", "-s", "4.2"}, - }, - - { - where: loc(), - val: time.Duration(time.Second * 42), - def: time.Second * 2, - str: "42s", - in: []string{"test", "-s", "42s"}, - }, - { - where: loc(), - val: time.Duration(time.Second * 42), - def: time.Second * 2, - str: "42s", - in: []string{"test", "-s42s"}, - }, - { - where: loc(), - val: time.Duration(time.Second * 2), - def: time.Second * 2, - in: []string{"test", "-s42"}, - str: "2s", - err: "test: time: missing unit in duration 42", - }, - - { - where: loc(), - val: []string{"42", "."}, - str: "42,.", - def: []string{"one", "two", "three"}, - in: []string{"test", "-s42", "-s."}, - }, - { - where: loc(), - val: []string{"42", "."}, - str: "42,.", - def: []string{"one", "two", "three"}, - in: []string{"test", "-s42,."}, - }, - { - where: loc(), - val: []string{"one", "two", "three"}, - def: []string{"one", "two", "three"}, - str: "one,two,three", - in: []string{"test"}, - }, - } { - reset() - var opt Option - val := reflect.New(reflect.TypeOf(tt.val)).Interface() - if tt.def != nil { - reflect.ValueOf(val).Elem().Set(reflect.ValueOf(tt.def)) - } - switch tt.kind { - case shortTest: - opt = Flag(val, 's') - case longTest: - opt = FlagLong(val, "long", 0) - case bothTest: - opt = FlagLong(val, "both", 'b') - } - _ = opt - parse(tt.in) - if s := checkError(tt.err); s != "" { - t.Errorf("%s: %s", tt.where, s) - continue - } - got := reflect.ValueOf(val).Elem().Interface() - want := reflect.ValueOf(tt.val).Interface() - if !reflect.DeepEqual(got, want) { - t.Errorf("%s: got %v, want %v", tt.where, got, want) - } - if str := opt.String(); str != tt.str { - t.Errorf("%s: got string %q, want %q", tt.where, str, tt.str) - } - } -} - -func TestGenericDup(t *testing.T) { - defer func() { - stderr = os.Stderr - exit = os.Exit - }() - - reset() - var v1, v2 string - type myPanic struct{} - var errbuf bytes.Buffer - stderr = &errbuf - _, file, line, _ := runtime.Caller(0) - Flag(&v1, 's') - line++ // line is now the line number of the first call to Flag. - - exit = func(i int) { panic(myPanic{}) } - defer func() { - p := recover() - if _, ok := p.(myPanic); ok { - err := errbuf.String() - if !strings.Contains(err, "-s already declared") || !strings.Contains(err, fmt.Sprintf("%s:%d", file, line)) { - t.Errorf("unexpected error: %q\nshould contain \"-s already declared\" and \"%s:%d\"", err, file, line) - } - } else if p == nil { - t.Errorf("Second call to Flag did not fail") - } else { - t.Errorf("panic %v", p) - } - }() - Flag(&v2, 's') -} - -func TestGenericDupNested(t *testing.T) { - defer func() { - stderr = os.Stderr - exit = os.Exit - }() - - reset() - type myPanic struct{} - var errbuf bytes.Buffer - stderr = &errbuf - _, file, line, _ := runtime.Caller(0) - String('s', "default") - line++ // line is now the line number of the first call to Flag. - - exit = func(i int) { panic(myPanic{}) } - defer func() { - p := recover() - if _, ok := p.(myPanic); ok { - err := errbuf.String() - if !strings.Contains(err, "-s already declared") || !strings.Contains(err, fmt.Sprintf("%s:%d", file, line)) { - t.Errorf("unexpected error: %q\nshould contain \"-s already declared\" and \"%s:%d\"", err, file, line) - } - } else if p == nil { - t.Errorf("Second call to Flag did not fail") - } else { - t.Errorf("panic %v", p) - } - }() - String('s', "default") -} |