|
| 1 | +package fixtures |
| 2 | + |
| 3 | +import "time" |
| 4 | + |
| 5 | +type decodeAndValidateRequest struct { |
| 6 | + // BEAWRE : the flag of URLParam should match the const string URLParam |
| 7 | + URLParam string `json:"-" path:"url_param" validate:"numeric"` |
| 8 | + Text string `json:"text" validate:"max=10"` |
| 9 | + DefaultInt int `json:"defaultInt" default:"10.0"` // MATCH /field's type and default value's type mismatch/ |
| 10 | + DefaultInt2 int `json:"defaultInt2" default:"10"` |
| 11 | + // MATCH:12 /unknown option 'inline' in JSON tag/ |
| 12 | + DefaultInt3 int `json:"defaultInt2,inline" default:"11"` // MATCH /duplicate tag name: 'defaultInt2'/ |
| 13 | + DefaultString string `json:"defaultString" default:"foo"` |
| 14 | + DefaultBool bool `json:"defaultBool" default:"trues"` // MATCH /field's type and default value's type mismatch/ |
| 15 | + DefaultBool2 bool `json:"defaultBool2" default:"true"` |
| 16 | + DefaultBool3 bool `json:"defaultBool3" default:"false"` |
| 17 | + DefaultFloat float64 `json:"defaultFloat" default:"f10.0"` // MATCH /field's type and default value's type mismatch/ |
| 18 | + DefaultFloat2 float64 `json:"defaultFloat2" default:"10.0"` |
| 19 | + MandatoryStruct mandatoryStruct `json:"mandatoryStruct" required:"trues"` // MATCH /required should be 'true' or 'false'/ |
| 20 | + MandatoryStruct2 mandatoryStruct `json:"mandatoryStruct2" required:"true"` |
| 21 | + MandatoryStruct4 mandatoryStruct `json:"mandatoryStruct4" required:"false"` |
| 22 | + OptionalStruct *optionalStruct `json:"optionalStruct,omitempty"` |
| 23 | + OptionalQuery string `json:"-" querystring:"queryfoo"` |
| 24 | + optionalQuery string `json:"-" querystring:"queryfoo"` // MATCH /tag on not-exported field optionalQuery/ |
| 25 | + // No-reg test for bug https://github.com/mgechev/revive/issues/208 |
| 26 | + Tiret string `json:"-,"` |
| 27 | + BadTiret string `json:"other,"` // MATCH /option can not be empty in JSON tag/ |
| 28 | + ForOmitzero string `json:"forOmitZero,omitzero"` // 'omitzero' is valid in go 1.24 |
| 29 | +} |
| 30 | + |
| 31 | +type RangeAllocation struct { |
| 32 | + metav1.TypeMeta `json:",inline"` // MATCH /unknown option 'inline' in JSON tag/ |
| 33 | + metav1.ObjectMeta `json:"metadata,omitempty"` |
| 34 | + Range string `json:"range,flow"` // MATCH /unknown option 'flow' in JSON tag/ |
| 35 | + Data []byte `json:"data,inline"` // MATCH /unknown option 'inline' in JSON tag/ |
| 36 | +} |
| 37 | + |
| 38 | +type RangeAllocation struct { |
| 39 | + metav1.TypeMeta `bson:",minsize"` |
| 40 | + metav1.ObjectMeta `bson:"metadata,omitempty"` |
| 41 | + Range string `bson:"range,flow"` // MATCH /unknown option 'flow' in BSON tag/ |
| 42 | + Data []byte `bson:"data,inline"` |
| 43 | +} |
| 44 | + |
| 45 | +type TestContextSpecificTags2 struct { |
| 46 | + A int `asn1:"explicit,tag:1"` |
| 47 | + B int `asn1:"tag:2"` |
| 48 | + S string `asn1:"tag:0,utf8"` |
| 49 | + Ints []int `asn1:"set"` |
| 50 | + Version int `asn1:"optional,explicit,default:0,tag:000"` // MATCH /duplicated tag number 0/ |
| 51 | + Time time.Time `asn1:"explicit,tag:4,other"` // MATCH /unknown option 'other' in ASN1 tag/ |
| 52 | + X int `asn1:"explicit,tag:invalid"` // MATCH /ASN1 tag must be a number, got 'invalid'/ |
| 53 | +} |
| 54 | + |
| 55 | +type VirtualMachineRelocateSpecDiskLocator struct { |
| 56 | + DynamicData |
| 57 | + |
| 58 | + DiskId int32 `xml:"diskId,attr,cdata"` |
| 59 | + Datastore ManagedObjectReference `xml:"datastore,chardata,innerxml"` |
| 60 | + DiskMoveType string `xml:"diskMoveType,omitempty,comment"` |
| 61 | + DiskBackingInfo BaseVirtualDeviceBackingInfo `xml:"diskBackingInfo,omitempty,any"` |
| 62 | + Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,other"` // MATCH /unknown option 'other' in XML tag/ |
| 63 | +} |
| 64 | + |
| 65 | +type TestDuplicatedXMLTags struct { |
| 66 | + A int `xml:"a"` |
| 67 | + B int `xml:"a"` // MATCH /duplicate tag name: 'a'/ |
| 68 | + C int `xml:"c"` |
| 69 | +} |
| 70 | + |
| 71 | +type TestDuplicatedBSONTags struct { |
| 72 | + A int `bson:"b"` |
| 73 | + B int `bson:"b"` // MATCH /duplicate tag name: 'b'/ |
| 74 | + C int `bson:"c"` |
| 75 | +} |
| 76 | + |
| 77 | +type TestDuplicatedYAMLTags struct { |
| 78 | + A int `yaml:"b"` |
| 79 | + B int `yaml:"c"` |
| 80 | + C int `yaml:"c"` // MATCH /duplicate tag name: 'c'/ |
| 81 | +} |
| 82 | + |
| 83 | +type TestDuplicatedProtobufTags struct { |
| 84 | + A int `protobuf:"varint,name=b"` |
| 85 | + B int `protobuf:"varint,name=c"` |
| 86 | + C int `protobuf:"varint,name=c"` // MATCH /duplicate tag name: 'c'/ |
| 87 | +} |
| 88 | + |
| 89 | +// test case from |
| 90 | +// sigs.k8s.io/kustomize/api/types/helmchartargs.go |
| 91 | + |
| 92 | +type HelmChartArgs struct { |
| 93 | + ChartName string `json:"chartName,omitempty" yaml:"chartName,omitempty"` |
| 94 | + ChartVersion string `json:"chartVersion,omitempty" yaml:"chartVersion,omitempty"` |
| 95 | + ChartRepoURL string `json:"chartRepoUrl,omitempty" yaml:"chartRepoUrl,omitempty"` |
| 96 | + ChartHome string `json:"chartHome,omitempty" yaml:"chartHome,omitempty"` |
| 97 | + ChartRepoName string `json:"chartRepoName,omitempty" yaml:"chartRepoName,omitempty"` |
| 98 | + HelmBin string `json:"helmBin,omitempty" yaml:"helmBin,omitempty"` |
| 99 | + HelmHome string `json:"helmHome,omitempty" yaml:"helmHome,omitempty"` |
| 100 | + Values string `json:"values,omitempty" yaml:"values,omitempty"` |
| 101 | + ValuesLocal map[string]interface{} `json:"valuesLocal,omitempty" yaml:"valuesLocal,omitempty"` |
| 102 | + ValuesMerge string `json:"valuesMerge,omitempty" yaml:"valuesMerge,omitempty"` |
| 103 | + ReleaseName string `json:"releaseName,omitempty" yaml:"releaseName,omitempty"` |
| 104 | + ReleaseNamespace string `json:"releaseNamespace,omitempty" yaml:"releaseNamespace,omitempty"` |
| 105 | + ExtraArgs []string `json:"extraArgs,omitempty" yaml:"extraArgs,omitempty"` |
| 106 | +} |
| 107 | + |
| 108 | +// Test message for holding primitive types. |
| 109 | +type Simple struct { |
| 110 | + OBool *bool `protobuf:"varint,1,req,json=oBool"` // MATCH /protobuf tag lacks mandatory option 'name'/ |
| 111 | + OInt32 *int32 `protobuf:"varint,2,opt,name=o_int32,jsonx=oInt32"` // MATCH /unknown option 'jsonx' in protobuf tag/ |
| 112 | + OInt32Str *int32 `protobuf:"varint,3,rep,name=o_int32_str,name=oInt32Str"` // MATCH /protobuf tag has duplicated option 'name'/ |
| 113 | + OInt64 *int64 `protobuf:"varint,4,opt,json=oInt64,name=o_int64,json=oInt64"` // MATCH /protobuf tag has duplicated option 'json'/ |
| 114 | + OSint32Str *int32 `protobuf:"zigzag32,11,opt,name=o_sint32_str,json=oSint32Str"` |
| 115 | + OSint64Str *int64 `protobuf:"zigzag64,13,opt,name=o_sint32_str,json=oSint64Str"` // MATCH /duplicate tag name: 'o_sint32_str'/ |
| 116 | + OFloat *float32 `protobuf:"fixed32,14,opt,name=o_float,json=oFloat"` |
| 117 | + ODouble *float64 `protobuf:"fixed64,014,opt,name=o_double,json=oDouble"` // MATCH /duplicated tag number 14/ |
| 118 | + ODoubleStr *float64 `protobuf:"fixed6,17,opt,name=o_double_str,json=oDoubleStr"` // MATCH /invalid protobuf tag name 'fixed6'/ |
| 119 | + OString *string `protobuf:"bytes,18,opt,name=o_string,json=oString"` |
| 120 | + OString2 *string `protobuf:"bytes,name=ameno"` |
| 121 | + OString3 *string `protobuf:"bytes,name=ameno"` // MATCH /duplicate tag name: 'ameno'/ |
| 122 | + XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| 123 | + XXX_unrecognized []byte `json:"-"` |
| 124 | + XXX_sizecache int32 `json:"-"` |
| 125 | +} |
0 commit comments