Files
kubernetes/vendor/gotest.tools/gotestsum/flags.go
2019-07-31 17:43:02 -04:00

50 lines
973 B
Go

package main
import (
"encoding/csv"
"strings"
"github.com/pkg/errors"
"gotest.tools/gotestsum/testjson"
)
type noSummaryValue struct {
value testjson.Summary
}
func newNoSummaryValue() *noSummaryValue {
return &noSummaryValue{value: testjson.SummarizeAll}
}
func readAsCSV(val string) ([]string, error) {
if val == "" {
return nil, nil
}
return csv.NewReader(strings.NewReader(val)).Read()
}
func (s *noSummaryValue) Set(val string) error {
v, err := readAsCSV(val)
if err != nil {
return err
}
for _, item := range v {
summary, ok := testjson.NewSummary(item)
if !ok {
return errors.Errorf("value must be one or more of: %s",
testjson.SummarizeAll.String())
}
s.value -= summary
}
return nil
}
func (s *noSummaryValue) Type() string {
return "summary"
}
func (s *noSummaryValue) String() string {
// flip all the bits, since the flag value is the negative of what is stored
return (testjson.SummarizeAll ^ s.value).String()
}