5 sql "database/sql/driver"
10 func BenchmarkFieldSuccess(b *testing.B) {
17 for n := 0; n < b.N; n++ {
18 validate.Var(&s, "len=1")
22 func BenchmarkFieldSuccessParallel(b *testing.B) {
29 b.RunParallel(func(pb *testing.PB) {
31 validate.Var(&s, "len=1")
36 func BenchmarkFieldFailure(b *testing.B) {
43 for n := 0; n < b.N; n++ {
44 validate.Var(&s, "len=1")
48 func BenchmarkFieldFailureParallel(b *testing.B) {
55 b.RunParallel(func(pb *testing.PB) {
57 validate.Var(&s, "len=1")
62 func BenchmarkFieldDiveSuccess(b *testing.B) {
66 m := []string{"val1", "val2", "val3"}
70 for n := 0; n < b.N; n++ {
71 validate.Var(m, "required,dive,required")
75 func BenchmarkFieldDiveSuccessParallel(b *testing.B) {
79 m := []string{"val1", "val2", "val3"}
82 b.RunParallel(func(pb *testing.PB) {
84 validate.Var(m, "required,dive,required")
89 func BenchmarkFieldDiveFailure(b *testing.B) {
93 m := []string{"val1", "", "val3"}
96 for n := 0; n < b.N; n++ {
97 validate.Var(m, "required,dive,required")
101 func BenchmarkFieldDiveFailureParallel(b *testing.B) {
105 m := []string{"val1", "", "val3"}
108 b.RunParallel(func(pb *testing.PB) {
110 validate.Var(m, "required,dive,required")
115 func BenchmarkFieldCustomTypeSuccess(b *testing.B) {
118 validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{})
125 for n := 0; n < b.N; n++ {
126 validate.Var(val, "len=1")
130 func BenchmarkFieldCustomTypeSuccessParallel(b *testing.B) {
133 validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{})
140 b.RunParallel(func(pb *testing.PB) {
142 validate.Var(val, "len=1")
147 func BenchmarkFieldCustomTypeFailure(b *testing.B) {
150 validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{})
155 for n := 0; n < b.N; n++ {
156 validate.Var(val, "len=1")
160 func BenchmarkFieldCustomTypeFailureParallel(b *testing.B) {
163 validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{})
168 b.RunParallel(func(pb *testing.PB) {
170 validate.Var(val, "len=1")
175 func BenchmarkFieldOrTagSuccess(b *testing.B) {
182 for n := 0; n < b.N; n++ {
183 validate.Var(s, "rgb|rgba")
187 func BenchmarkFieldOrTagSuccessParallel(b *testing.B) {
194 b.RunParallel(func(pb *testing.PB) {
196 validate.Var(s, "rgb|rgba")
201 func BenchmarkFieldOrTagFailure(b *testing.B) {
208 for n := 0; n < b.N; n++ {
209 validate.Var(s, "rgb|rgba")
213 func BenchmarkFieldOrTagFailureParallel(b *testing.B) {
220 b.RunParallel(func(pb *testing.PB) {
222 validate.Var(s, "rgb|rgba")
227 func BenchmarkStructLevelValidationSuccess(b *testing.B) {
230 validate.RegisterStructValidation(StructValidationTestStructSuccess, TestStruct{})
233 String: "good value",
237 for n := 0; n < b.N; n++ {
242 func BenchmarkStructLevelValidationSuccessParallel(b *testing.B) {
245 validate.RegisterStructValidation(StructValidationTestStructSuccess, TestStruct{})
248 String: "good value",
252 b.RunParallel(func(pb *testing.PB) {
259 func BenchmarkStructLevelValidationFailure(b *testing.B) {
262 validate.RegisterStructValidation(StructValidationTestStruct, TestStruct{})
265 String: "good value",
269 for n := 0; n < b.N; n++ {
274 func BenchmarkStructLevelValidationFailureParallel(b *testing.B) {
277 validate.RegisterStructValidation(StructValidationTestStruct, TestStruct{})
280 String: "good value",
284 b.RunParallel(func(pb *testing.PB) {
291 func BenchmarkStructSimpleCustomTypeSuccess(b *testing.B) {
294 validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{})
301 Valuer valuer `validate:"len=1"`
302 IntValue int `validate:"min=5,max=10"`
305 validFoo := &Foo{Valuer: val, IntValue: 7}
308 for n := 0; n < b.N; n++ {
309 validate.Struct(validFoo)
313 func BenchmarkStructSimpleCustomTypeSuccessParallel(b *testing.B) {
316 validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{})
323 Valuer valuer `validate:"len=1"`
324 IntValue int `validate:"min=5,max=10"`
327 validFoo := &Foo{Valuer: val, IntValue: 7}
330 b.RunParallel(func(pb *testing.PB) {
332 validate.Struct(validFoo)
337 func BenchmarkStructSimpleCustomTypeFailure(b *testing.B) {
340 validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{})
345 Valuer valuer `validate:"len=1"`
346 IntValue int `validate:"min=5,max=10"`
349 validFoo := &Foo{Valuer: val, IntValue: 3}
352 for n := 0; n < b.N; n++ {
353 validate.Struct(validFoo)
357 func BenchmarkStructSimpleCustomTypeFailureParallel(b *testing.B) {
360 validate.RegisterCustomTypeFunc(ValidateValuerType, (*sql.Valuer)(nil), valuer{})
365 Valuer valuer `validate:"len=1"`
366 IntValue int `validate:"min=5,max=10"`
369 validFoo := &Foo{Valuer: val, IntValue: 3}
372 b.RunParallel(func(pb *testing.PB) {
374 validate.Struct(validate.Struct(validFoo))
379 func BenchmarkStructFilteredSuccess(b *testing.B) {
384 Name string `validate:"required"`
385 NickName string `validate:"required"`
392 byts := []byte("Name")
394 fn := func(ns []byte) bool {
395 return !bytes.HasSuffix(ns, byts)
399 for n := 0; n < b.N; n++ {
400 validate.StructFiltered(test, fn)
404 func BenchmarkStructFilteredSuccessParallel(b *testing.B) {
409 Name string `validate:"required"`
410 NickName string `validate:"required"`
417 byts := []byte("Name")
419 fn := func(ns []byte) bool {
420 return !bytes.HasSuffix(ns, byts)
424 b.RunParallel(func(pb *testing.PB) {
426 validate.StructFiltered(test, fn)
431 func BenchmarkStructFilteredFailure(b *testing.B) {
436 Name string `validate:"required"`
437 NickName string `validate:"required"`
444 byts := []byte("NickName")
446 fn := func(ns []byte) bool {
447 return !bytes.HasSuffix(ns, byts)
451 for n := 0; n < b.N; n++ {
452 validate.StructFiltered(test, fn)
456 func BenchmarkStructFilteredFailureParallel(b *testing.B) {
461 Name string `validate:"required"`
462 NickName string `validate:"required"`
469 byts := []byte("NickName")
471 fn := func(ns []byte) bool {
472 return !bytes.HasSuffix(ns, byts)
476 b.RunParallel(func(pb *testing.PB) {
478 validate.StructFiltered(test, fn)
483 func BenchmarkStructPartialSuccess(b *testing.B) {
488 Name string `validate:"required"`
489 NickName string `validate:"required"`
497 for n := 0; n < b.N; n++ {
498 validate.StructPartial(test, "Name")
502 func BenchmarkStructPartialSuccessParallel(b *testing.B) {
507 Name string `validate:"required"`
508 NickName string `validate:"required"`
516 b.RunParallel(func(pb *testing.PB) {
518 validate.StructPartial(test, "Name")
523 func BenchmarkStructPartialFailure(b *testing.B) {
528 Name string `validate:"required"`
529 NickName string `validate:"required"`
537 for n := 0; n < b.N; n++ {
538 validate.StructPartial(test, "NickName")
542 func BenchmarkStructPartialFailureParallel(b *testing.B) {
547 Name string `validate:"required"`
548 NickName string `validate:"required"`
556 b.RunParallel(func(pb *testing.PB) {
558 validate.StructPartial(test, "NickName")
563 func BenchmarkStructExceptSuccess(b *testing.B) {
568 Name string `validate:"required"`
569 NickName string `validate:"required"`
577 for n := 0; n < b.N; n++ {
578 validate.StructExcept(test, "Nickname")
582 func BenchmarkStructExceptSuccessParallel(b *testing.B) {
587 Name string `validate:"required"`
588 NickName string `validate:"required"`
596 b.RunParallel(func(pb *testing.PB) {
598 validate.StructExcept(test, "NickName")
603 func BenchmarkStructExceptFailure(b *testing.B) {
608 Name string `validate:"required"`
609 NickName string `validate:"required"`
617 for n := 0; n < b.N; n++ {
618 validate.StructExcept(test, "Name")
622 func BenchmarkStructExceptFailureParallel(b *testing.B) {
627 Name string `validate:"required"`
628 NickName string `validate:"required"`
636 b.RunParallel(func(pb *testing.PB) {
638 validate.StructExcept(test, "Name")
643 func BenchmarkStructSimpleCrossFieldSuccess(b *testing.B) {
649 End time.Time `validate:"gtfield=Start"`
652 now := time.Now().UTC()
653 then := now.Add(time.Hour * 5)
661 for n := 0; n < b.N; n++ {
662 validate.Struct(test)
666 func BenchmarkStructSimpleCrossFieldSuccessParallel(b *testing.B) {
672 End time.Time `validate:"gtfield=Start"`
675 now := time.Now().UTC()
676 then := now.Add(time.Hour * 5)
684 b.RunParallel(func(pb *testing.PB) {
686 validate.Struct(test)
691 func BenchmarkStructSimpleCrossFieldFailure(b *testing.B) {
697 End time.Time `validate:"gtfield=Start"`
700 now := time.Now().UTC()
701 then := now.Add(time.Hour * -5)
709 for n := 0; n < b.N; n++ {
710 validate.Struct(test)
714 func BenchmarkStructSimpleCrossFieldFailureParallel(b *testing.B) {
720 End time.Time `validate:"gtfield=Start"`
723 now := time.Now().UTC()
724 then := now.Add(time.Hour * -5)
731 b.RunParallel(func(pb *testing.PB) {
733 validate.Struct(test)
738 func BenchmarkStructSimpleCrossStructCrossFieldSuccess(b *testing.B) {
748 CreatedAt time.Time `validate:"eqcsfield=Inner.Start"`
751 now := time.Now().UTC()
763 for n := 0; n < b.N; n++ {
764 validate.Struct(outer)
768 func BenchmarkStructSimpleCrossStructCrossFieldSuccessParallel(b *testing.B) {
778 CreatedAt time.Time `validate:"eqcsfield=Inner.Start"`
781 now := time.Now().UTC()
793 b.RunParallel(func(pb *testing.PB) {
795 validate.Struct(outer)
800 func BenchmarkStructSimpleCrossStructCrossFieldFailure(b *testing.B) {
810 CreatedAt time.Time `validate:"eqcsfield=Inner.Start"`
813 now := time.Now().UTC()
814 then := now.Add(time.Hour * 5)
826 for n := 0; n < b.N; n++ {
827 validate.Struct(outer)
831 func BenchmarkStructSimpleCrossStructCrossFieldFailureParallel(b *testing.B) {
841 CreatedAt time.Time `validate:"eqcsfield=Inner.Start"`
844 now := time.Now().UTC()
845 then := now.Add(time.Hour * 5)
857 b.RunParallel(func(pb *testing.PB) {
859 validate.Struct(outer)
864 func BenchmarkStructSimpleSuccess(b *testing.B) {
869 StringValue string `validate:"min=5,max=10"`
870 IntValue int `validate:"min=5,max=10"`
873 validFoo := &Foo{StringValue: "Foobar", IntValue: 7}
876 for n := 0; n < b.N; n++ {
877 validate.Struct(validFoo)
881 func BenchmarkStructSimpleSuccessParallel(b *testing.B) {
886 StringValue string `validate:"min=5,max=10"`
887 IntValue int `validate:"min=5,max=10"`
890 validFoo := &Foo{StringValue: "Foobar", IntValue: 7}
893 b.RunParallel(func(pb *testing.PB) {
895 validate.Struct(validFoo)
900 func BenchmarkStructSimpleFailure(b *testing.B) {
905 StringValue string `validate:"min=5,max=10"`
906 IntValue int `validate:"min=5,max=10"`
909 invalidFoo := &Foo{StringValue: "Fo", IntValue: 3}
912 for n := 0; n < b.N; n++ {
913 validate.Struct(invalidFoo)
917 func BenchmarkStructSimpleFailureParallel(b *testing.B) {
922 StringValue string `validate:"min=5,max=10"`
923 IntValue int `validate:"min=5,max=10"`
926 invalidFoo := &Foo{StringValue: "Fo", IntValue: 3}
929 b.RunParallel(func(pb *testing.PB) {
931 validate.Struct(invalidFoo)
936 func BenchmarkStructComplexSuccess(b *testing.B) {
940 tSuccess := &TestString{
941 Required: "Required",
958 A string `validate:"required"`
968 for n := 0; n < b.N; n++ {
969 validate.Struct(tSuccess)
973 func BenchmarkStructComplexSuccessParallel(b *testing.B) {
977 tSuccess := &TestString{
978 Required: "Required",
995 A string `validate:"required"`
1005 b.RunParallel(func(pb *testing.PB) {
1007 validate.Struct(tSuccess)
1012 func BenchmarkStructComplexFailure(b *testing.B) {
1016 tFail := &TestString{
1026 OmitEmpty: "12345678901",
1031 A string `validate:"required"`
1041 for n := 0; n < b.N; n++ {
1042 validate.Struct(tFail)
1046 func BenchmarkStructComplexFailureParallel(b *testing.B) {
1050 tFail := &TestString{
1060 OmitEmpty: "12345678901",
1065 A string `validate:"required"`
1075 b.RunParallel(func(pb *testing.PB) {
1077 validate.Struct(tFail)