diff options
Diffstat (limited to 'vendor/gopkg.in/go-playground/validator.v9/benchmarks_test.go')
-rw-r--r-- | vendor/gopkg.in/go-playground/validator.v9/benchmarks_test.go | 1210 |
1 files changed, 0 insertions, 1210 deletions
diff --git a/vendor/gopkg.in/go-playground/validator.v9/benchmarks_test.go b/vendor/gopkg.in/go-playground/validator.v9/benchmarks_test.go deleted file mode 100644 index 5ac871f..0000000 --- a/vendor/gopkg.in/go-playground/validator.v9/benchmarks_test.go +++ /dev/null @@ -1,1210 +0,0 @@ -package validator - -import ( - "bytes" - sql "database/sql/driver" - "testing" - "time" -) - -func BenchmarkFieldSuccess(b *testing.B) { - - validate := New() - - s := "1" - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(&s, "len=1") - } -} - -func BenchmarkFieldSuccessParallel(b *testing.B) { - - validate := New() - - s := "1" - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(&s, "len=1") - } - }) -} - -func BenchmarkFieldFailure(b *testing.B) { - - validate := New() - - s := "12" - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(&s, "len=1") - } -} - -func BenchmarkFieldFailureParallel(b *testing.B) { - - validate := New() - - s := "12" - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(&s, "len=1") - } - }) -} - -func BenchmarkFieldArrayDiveSuccess(b *testing.B) { - - validate := New() - - m := []string{"val1", "val2", "val3"} - - b.ResetTimer() - - for n := 0; n < b.N; n++ { - validate.Var(m, "required,dive,required") - } -} - -func BenchmarkFieldArrayDiveSuccessParallel(b *testing.B) { - - validate := New() - - m := []string{"val1", "val2", "val3"} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(m, "required,dive,required") - } - }) -} - -func BenchmarkFieldArrayDiveFailure(b *testing.B) { - - validate := New() - - m := []string{"val1", "", "val3"} - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(m, "required,dive,required") - } -} - -func BenchmarkFieldArrayDiveFailureParallel(b *testing.B) { - - validate := New() - - m := []string{"val1", "", "val3"} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(m, "required,dive,required") - } - }) -} - -func BenchmarkFieldMapDiveSuccess(b *testing.B) { - - validate := New() - - m := map[string]string{"val1": "val1", "val2": "val2", "val3": "val3"} - - b.ResetTimer() - - for n := 0; n < b.N; n++ { - validate.Var(m, "required,dive,required") - } -} - -func BenchmarkFieldMapDiveSuccessParallel(b *testing.B) { - - validate := New() - - m := map[string]string{"val1": "val1", "val2": "val2", "val3": "val3"} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(m, "required,dive,required") - } - }) -} - -func BenchmarkFieldMapDiveFailure(b *testing.B) { - - validate := New() - - m := map[string]string{"": "", "val3": "val3"} - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(m, "required,dive,required") - } -} - -func BenchmarkFieldMapDiveFailureParallel(b *testing.B) { - - validate := New() - - m := map[string]string{"": "", "val3": "val3"} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(m, "required,dive,required") - } - }) -} - -func BenchmarkFieldMapDiveWithKeysSuccess(b *testing.B) { - - validate := New() - - m := map[string]string{"val1": "val1", "val2": "val2", "val3": "val3"} - - b.ResetTimer() - - for n := 0; n < b.N; n++ { - validate.Var(m, "required,dive,keys,required,endkeys,required") - } -} - -func BenchmarkFieldMapDiveWithKeysSuccessParallel(b *testing.B) { - - validate := New() - - m := map[string]string{"val1": "val1", "val2": "val2", "val3": "val3"} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(m, "required,dive,keys,required,endkeys,required") - } - }) -} - -func BenchmarkFieldMapDiveWithKeysFailure(b *testing.B) { - - validate := New() - - m := map[string]string{"": "", "val3": "val3"} - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(m, "required,dive,keys,required,endkeys,required") - } -} - -func BenchmarkFieldMapDiveWithKeysFailureParallel(b *testing.B) { - - validate := New() - - m := map[string]string{"": "", "val3": "val3"} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(m, "required,dive,keys,required,endkeys,required") - } - }) -} - -func BenchmarkFieldCustomTypeSuccess(b *testing.B) { - - validate := New() - validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{}) - - val := valuer{ - Name: "1", - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(val, "len=1") - } -} - -func BenchmarkFieldCustomTypeSuccessParallel(b *testing.B) { - - validate := New() - validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{}) - - val := valuer{ - Name: "1", - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(val, "len=1") - } - }) -} - -func BenchmarkFieldCustomTypeFailure(b *testing.B) { - - validate := New() - validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{}) - - val := valuer{} - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(val, "len=1") - } -} - -func BenchmarkFieldCustomTypeFailureParallel(b *testing.B) { - - validate := New() - validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{}) - - val := valuer{} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(val, "len=1") - } - }) -} - -func BenchmarkFieldOrTagSuccess(b *testing.B) { - - validate := New() - - s := "rgba(0,0,0,1)" - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(s, "rgb|rgba") - } -} - -func BenchmarkFieldOrTagSuccessParallel(b *testing.B) { - - validate := New() - - s := "rgba(0,0,0,1)" - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(s, "rgb|rgba") - } - }) -} - -func BenchmarkFieldOrTagFailure(b *testing.B) { - - validate := New() - - s := "#000" - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Var(s, "rgb|rgba") - } -} - -func BenchmarkFieldOrTagFailureParallel(b *testing.B) { - - validate := New() - - s := "#000" - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Var(s, "rgb|rgba") - } - }) -} - -func BenchmarkStructLevelValidationSuccess(b *testing.B) { - - validate := New() - validate.RegisterStructValidation(StructValidationTestStructSuccess, TestStruct{}) - - tst := TestStruct{ - String: "good value", - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(tst) - } -} - -func BenchmarkStructLevelValidationSuccessParallel(b *testing.B) { - - validate := New() - validate.RegisterStructValidation(StructValidationTestStructSuccess, TestStruct{}) - - tst := TestStruct{ - String: "good value", - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(tst) - } - }) -} - -func BenchmarkStructLevelValidationFailure(b *testing.B) { - - validate := New() - validate.RegisterStructValidation(StructValidationTestStruct, TestStruct{}) - - tst := TestStruct{ - String: "good value", - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(tst) - } -} - -func BenchmarkStructLevelValidationFailureParallel(b *testing.B) { - - validate := New() - validate.RegisterStructValidation(StructValidationTestStruct, TestStruct{}) - - tst := TestStruct{ - String: "good value", - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(tst) - } - }) -} - -func BenchmarkStructSimpleCustomTypeSuccess(b *testing.B) { - - validate := New() - validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{}) - - val := valuer{ - Name: "1", - } - - type Foo struct { - Valuer valuer `validate:"len=1"` - IntValue int `validate:"min=5,max=10"` - } - - validFoo := &Foo{Valuer: val, IntValue: 7} - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(validFoo) - } -} - -func BenchmarkStructSimpleCustomTypeSuccessParallel(b *testing.B) { - - validate := New() - validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{}) - - val := valuer{ - Name: "1", - } - - type Foo struct { - Valuer valuer `validate:"len=1"` - IntValue int `validate:"min=5,max=10"` - } - - validFoo := &Foo{Valuer: val, IntValue: 7} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(validFoo) - } - }) -} - -func BenchmarkStructSimpleCustomTypeFailure(b *testing.B) { - - validate := New() - validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{}) - - val := valuer{} - - type Foo struct { - Valuer valuer `validate:"len=1"` - IntValue int `validate:"min=5,max=10"` - } - - validFoo := &Foo{Valuer: val, IntValue: 3} - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(validFoo) - } -} - -func BenchmarkStructSimpleCustomTypeFailureParallel(b *testing.B) { - - validate := New() - validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{}) - - val := valuer{} - - type Foo struct { - Valuer valuer `validate:"len=1"` - IntValue int `validate:"min=5,max=10"` - } - - validFoo := &Foo{Valuer: val, IntValue: 3} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(validate.Struct(validFoo)) - } - }) -} - -func BenchmarkStructFilteredSuccess(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - byts := []byte("Name") - - fn := func(ns []byte) bool { - return !bytes.HasSuffix(ns, byts) - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.StructFiltered(test, fn) - } -} - -func BenchmarkStructFilteredSuccessParallel(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - byts := []byte("Name") - - fn := func(ns []byte) bool { - return !bytes.HasSuffix(ns, byts) - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.StructFiltered(test, fn) - } - }) -} - -func BenchmarkStructFilteredFailure(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - byts := []byte("NickName") - - fn := func(ns []byte) bool { - return !bytes.HasSuffix(ns, byts) - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.StructFiltered(test, fn) - } -} - -func BenchmarkStructFilteredFailureParallel(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - byts := []byte("NickName") - - fn := func(ns []byte) bool { - return !bytes.HasSuffix(ns, byts) - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.StructFiltered(test, fn) - } - }) -} - -func BenchmarkStructPartialSuccess(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.StructPartial(test, "Name") - } -} - -func BenchmarkStructPartialSuccessParallel(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.StructPartial(test, "Name") - } - }) -} - -func BenchmarkStructPartialFailure(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.StructPartial(test, "NickName") - } -} - -func BenchmarkStructPartialFailureParallel(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.StructPartial(test, "NickName") - } - }) -} - -func BenchmarkStructExceptSuccess(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.StructExcept(test, "Nickname") - } -} - -func BenchmarkStructExceptSuccessParallel(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.StructExcept(test, "NickName") - } - }) -} - -func BenchmarkStructExceptFailure(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.StructExcept(test, "Name") - } -} - -func BenchmarkStructExceptFailureParallel(b *testing.B) { - - validate := New() - - type Test struct { - Name string `validate:"required"` - NickName string `validate:"required"` - } - - test := &Test{ - Name: "Joey Bloggs", - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.StructExcept(test, "Name") - } - }) -} - -func BenchmarkStructSimpleCrossFieldSuccess(b *testing.B) { - - validate := New() - - type Test struct { - Start time.Time - End time.Time `validate:"gtfield=Start"` - } - - now := time.Now().UTC() - then := now.Add(time.Hour * 5) - - test := &Test{ - Start: now, - End: then, - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(test) - } -} - -func BenchmarkStructSimpleCrossFieldSuccessParallel(b *testing.B) { - - validate := New() - - type Test struct { - Start time.Time - End time.Time `validate:"gtfield=Start"` - } - - now := time.Now().UTC() - then := now.Add(time.Hour * 5) - - test := &Test{ - Start: now, - End: then, - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(test) - } - }) -} - -func BenchmarkStructSimpleCrossFieldFailure(b *testing.B) { - - validate := New() - - type Test struct { - Start time.Time - End time.Time `validate:"gtfield=Start"` - } - - now := time.Now().UTC() - then := now.Add(time.Hour * -5) - - test := &Test{ - Start: now, - End: then, - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(test) - } -} - -func BenchmarkStructSimpleCrossFieldFailureParallel(b *testing.B) { - - validate := New() - - type Test struct { - Start time.Time - End time.Time `validate:"gtfield=Start"` - } - - now := time.Now().UTC() - then := now.Add(time.Hour * -5) - - test := &Test{ - Start: now, - End: then, - } - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(test) - } - }) -} - -func BenchmarkStructSimpleCrossStructCrossFieldSuccess(b *testing.B) { - - validate := New() - - type Inner struct { - Start time.Time - } - - type Outer struct { - Inner *Inner - CreatedAt time.Time `validate:"eqcsfield=Inner.Start"` - } - - now := time.Now().UTC() - - inner := &Inner{ - Start: now, - } - - outer := &Outer{ - Inner: inner, - CreatedAt: now, - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(outer) - } -} - -func BenchmarkStructSimpleCrossStructCrossFieldSuccessParallel(b *testing.B) { - - validate := New() - - type Inner struct { - Start time.Time - } - - type Outer struct { - Inner *Inner - CreatedAt time.Time `validate:"eqcsfield=Inner.Start"` - } - - now := time.Now().UTC() - - inner := &Inner{ - Start: now, - } - - outer := &Outer{ - Inner: inner, - CreatedAt: now, - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(outer) - } - }) -} - -func BenchmarkStructSimpleCrossStructCrossFieldFailure(b *testing.B) { - - validate := New() - - type Inner struct { - Start time.Time - } - - type Outer struct { - Inner *Inner - CreatedAt time.Time `validate:"eqcsfield=Inner.Start"` - } - - now := time.Now().UTC() - then := now.Add(time.Hour * 5) - - inner := &Inner{ - Start: then, - } - - outer := &Outer{ - Inner: inner, - CreatedAt: now, - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(outer) - } -} - -func BenchmarkStructSimpleCrossStructCrossFieldFailureParallel(b *testing.B) { - - validate := New() - - type Inner struct { - Start time.Time - } - - type Outer struct { - Inner *Inner - CreatedAt time.Time `validate:"eqcsfield=Inner.Start"` - } - - now := time.Now().UTC() - then := now.Add(time.Hour * 5) - - inner := &Inner{ - Start: then, - } - - outer := &Outer{ - Inner: inner, - CreatedAt: now, - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(outer) - } - }) -} - -func BenchmarkStructSimpleSuccess(b *testing.B) { - - validate := New() - - type Foo struct { - StringValue string `validate:"min=5,max=10"` - IntValue int `validate:"min=5,max=10"` - } - - validFoo := &Foo{StringValue: "Foobar", IntValue: 7} - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(validFoo) - } -} - -func BenchmarkStructSimpleSuccessParallel(b *testing.B) { - - validate := New() - - type Foo struct { - StringValue string `validate:"min=5,max=10"` - IntValue int `validate:"min=5,max=10"` - } - - validFoo := &Foo{StringValue: "Foobar", IntValue: 7} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(validFoo) - } - }) -} - -func BenchmarkStructSimpleFailure(b *testing.B) { - - validate := New() - - type Foo struct { - StringValue string `validate:"min=5,max=10"` - IntValue int `validate:"min=5,max=10"` - } - - invalidFoo := &Foo{StringValue: "Fo", IntValue: 3} - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(invalidFoo) - } -} - -func BenchmarkStructSimpleFailureParallel(b *testing.B) { - - validate := New() - - type Foo struct { - StringValue string `validate:"min=5,max=10"` - IntValue int `validate:"min=5,max=10"` - } - - invalidFoo := &Foo{StringValue: "Fo", IntValue: 3} - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(invalidFoo) - } - }) -} - -func BenchmarkStructComplexSuccess(b *testing.B) { - - validate := New() - - tSuccess := &TestString{ - Required: "Required", - Len: "length==10", - Min: "min=1", - Max: "1234567890", - MinMax: "12345", - Lt: "012345678", - Lte: "0123456789", - Gt: "01234567890", - Gte: "0123456789", - OmitEmpty: "", - Sub: &SubTest{ - Test: "1", - }, - SubIgnore: &SubTest{ - Test: "", - }, - Anonymous: struct { - A string `validate:"required"` - }{ - A: "1", - }, - Iface: &Impl{ - F: "123", - }, - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(tSuccess) - } -} - -func BenchmarkStructComplexSuccessParallel(b *testing.B) { - - validate := New() - - tSuccess := &TestString{ - Required: "Required", - Len: "length==10", - Min: "min=1", - Max: "1234567890", - MinMax: "12345", - Lt: "012345678", - Lte: "0123456789", - Gt: "01234567890", - Gte: "0123456789", - OmitEmpty: "", - Sub: &SubTest{ - Test: "1", - }, - SubIgnore: &SubTest{ - Test: "", - }, - Anonymous: struct { - A string `validate:"required"` - }{ - A: "1", - }, - Iface: &Impl{ - F: "123", - }, - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(tSuccess) - } - }) -} - -func BenchmarkStructComplexFailure(b *testing.B) { - - validate := New() - - tFail := &TestString{ - Required: "", - Len: "", - Min: "", - Max: "12345678901", - MinMax: "", - Lt: "0123456789", - Lte: "01234567890", - Gt: "1", - Gte: "1", - OmitEmpty: "12345678901", - Sub: &SubTest{ - Test: "", - }, - Anonymous: struct { - A string `validate:"required"` - }{ - A: "", - }, - Iface: &Impl{ - F: "12", - }, - } - - b.ResetTimer() - for n := 0; n < b.N; n++ { - validate.Struct(tFail) - } -} - -func BenchmarkStructComplexFailureParallel(b *testing.B) { - - validate := New() - - tFail := &TestString{ - Required: "", - Len: "", - Min: "", - Max: "12345678901", - MinMax: "", - Lt: "0123456789", - Lte: "01234567890", - Gt: "1", - Gte: "1", - OmitEmpty: "12345678901", - Sub: &SubTest{ - Test: "", - }, - Anonymous: struct { - A string `validate:"required"` - }{ - A: "", - }, - Iface: &Impl{ - F: "12", - }, - } - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - validate.Struct(tFail) - } - }) -} - -type TestOneof struct { - Color string `validate:"oneof=red green"` -} - -func BenchmarkOneof(b *testing.B) { - w := &TestOneof{Color: "green"} - val := New() - for i := 0; i < b.N; i++ { - val.Struct(w) - } -} - -func BenchmarkOneofParallel(b *testing.B) { - w := &TestOneof{Color: "green"} - val := New() - - b.ResetTimer() - b.RunParallel(func(pb *testing.PB) { - for pb.Next() { - val.Struct(w) - } - }) -} |