@@ -276,22 +276,10 @@ func isIPSuite() suites.Suite {
276276 Message : & cases.IsIp {Val : "0:0:0:0:0:0:0:0" },
277277 Expected : results .Success (true ),
278278 },
279- "version/omitted/valid/ipv6/h" : {
280- Message : & cases.IsIp {Val : "::1" },
281- Expected : results .Success (true ),
282- },
283- "version/omitted/valid/ipv6/i" : {
284- Message : & cases.IsIp {Val : "::" },
285- Expected : results .Success (true ),
286- },
287279 "version/omitted/valid/ipv6/j" : {
288280 Message : & cases.IsIp {Val : "0:00::000:0000" },
289281 Expected : results .Success (true ),
290282 },
291- "version/omitted/valid/ipv6/k" : {
292- Message : & cases.IsIp {Val : "0::" },
293- Expected : results .Success (true ),
294- },
295283 "version/omitted/valid/ipv6_embedded_ipv4" : {
296284 Message : & cases.IsIp {Val : "0:0:0:0:0:ffff:192.1.56.10" },
297285 Expected : results .Success (true ),
@@ -500,5 +488,141 @@ func isIPSuite() suites.Suite {
500488 },
501489 ),
502490 },
491+ "version/6/valid/ipv6/double_colon" : {
492+ Message : & cases.IsIp {Val : "::" , Version : proto .Int32 (6 )},
493+ Expected : results .Success (true ),
494+ },
495+ "version/6/valid/ipv6/1h16_double_colon" : {
496+ Message : & cases.IsIp {Val : "1::" , Version : proto .Int32 (6 )},
497+ Expected : results .Success (true ),
498+ },
499+ "version/6/valid/ipv6/2h16_double_colon" : {
500+ Message : & cases.IsIp {Val : "1:2::" , Version : proto .Int32 (6 )},
501+ Expected : results .Success (true ),
502+ },
503+ "version/6/valid/ipv6/3h16_double_colon" : {
504+ Message : & cases.IsIp {Val : "1:2:3::" , Version : proto .Int32 (6 )},
505+ Expected : results .Success (true ),
506+ },
507+ "version/6/valid/ipv6/4h16_double_colon" : {
508+ Message : & cases.IsIp {Val : "1:2:3:4::" , Version : proto .Int32 (6 )},
509+ Expected : results .Success (true ),
510+ },
511+ "version/6/valid/ipv6/5h16_double_colon" : {
512+ Message : & cases.IsIp {Val : "1:2:3:4:5::" , Version : proto .Int32 (6 )},
513+ Expected : results .Success (true ),
514+ },
515+ "version/6/valid/ipv6/6h16_double_colon" : {
516+ Message : & cases.IsIp {Val : "1:2:3:4:5:6::" , Version : proto .Int32 (6 )},
517+ Expected : results .Success (true ),
518+ },
519+ "version/6/valid/ipv6/7h16_double_colon" : {
520+ Message : & cases.IsIp {Val : "1:2:3:4:5:6:7::" , Version : proto .Int32 (6 )},
521+ Expected : results .Success (true ),
522+ },
523+ "version/6/invalid/ipv6/7h16_double_colon" : {
524+ Message : & cases.IsIp {Val : "1:2:3:4:5:6:7:8::" , Version : proto .Int32 (6 )},
525+ Expected : results .Violations (
526+ & validate.Violation {
527+ ConstraintId : proto .String ("library.is_ip" ),
528+ },
529+ ),
530+ },
531+ "version/6/valid/ipv6/1h16_double_colon_1h16" : {
532+ Message : & cases.IsIp {Val : "1::1" , Version : proto .Int32 (6 )},
533+ Expected : results .Success (true ),
534+ },
535+ "version/6/valid/ipv6/2h16_double_colon_1h16" : {
536+ Message : & cases.IsIp {Val : "1:2::1" , Version : proto .Int32 (6 )},
537+ Expected : results .Success (true ),
538+ },
539+ "version/6/valid/ipv6/3h16_double_colon_1h16" : {
540+ Message : & cases.IsIp {Val : "1:2:3::1" , Version : proto .Int32 (6 )},
541+ Expected : results .Success (true ),
542+ },
543+ "version/6/valid/ipv6/4h16_double_colon_1h16" : {
544+ Message : & cases.IsIp {Val : "1:2:3:4::1" , Version : proto .Int32 (6 )},
545+ Expected : results .Success (true ),
546+ },
547+ "version/6/valid/ipv6/5h16_double_colon_1h16" : {
548+ Message : & cases.IsIp {Val : "1:2:3:4:5::1" , Version : proto .Int32 (6 )},
549+ Expected : results .Success (true ),
550+ },
551+ "version/6/valid/ipv6/6h16_double_colon_1h16" : {
552+ Message : & cases.IsIp {Val : "1:2:3:4:5:6::1" , Version : proto .Int32 (6 )},
553+ Expected : results .Success (true ),
554+ },
555+ "version/6/invalid/ipv6/7h16_double_colon_1h16" : {
556+ Message : & cases.IsIp {Val : "1:2:3:4:5:6:7::1" , Version : proto .Int32 (6 )},
557+ Expected : results .Violations (
558+ & validate.Violation {
559+ ConstraintId : proto .String ("library.is_ip" ),
560+ },
561+ ),
562+ },
563+ "version/6/valid/ipv6/double_colon_1h16" : {
564+ Message : & cases.IsIp {Val : "::1" , Version : proto .Int32 (6 )},
565+ Expected : results .Success (true ),
566+ },
567+ "version/6/valid/ipv6/double_colon_2h16" : {
568+ Message : & cases.IsIp {Val : "::1:2" , Version : proto .Int32 (6 )},
569+ Expected : results .Success (true ),
570+ },
571+ "version/6/valid/ipv6/double_colon_3h16" : {
572+ Message : & cases.IsIp {Val : "::1:2:3" , Version : proto .Int32 (6 )},
573+ Expected : results .Success (true ),
574+ },
575+ "version/6/valid/ipv6/double_colon_4h16" : {
576+ Message : & cases.IsIp {Val : "::1:2:3:4" , Version : proto .Int32 (6 )},
577+ Expected : results .Success (true ),
578+ },
579+ "version/6/valid/ipv6/double_colon_5h16" : {
580+ Message : & cases.IsIp {Val : "::1:2:3:4:5" , Version : proto .Int32 (6 )},
581+ Expected : results .Success (true ),
582+ },
583+ "version/6/valid/ipv6/double_colon_6h16" : {
584+ Message : & cases.IsIp {Val : "::1:2:3:4:5:6" , Version : proto .Int32 (6 )},
585+ Expected : results .Success (true ),
586+ },
587+ "version/6/valid/ipv6/double_colon_7h16" : {
588+ Message : & cases.IsIp {Val : "::1:2:3:4:5:6:7" , Version : proto .Int32 (6 )},
589+ Expected : results .Success (true ),
590+ },
591+ "version/6/invalid/ipv6/double_colon_8h16" : {
592+ Message : & cases.IsIp {Val : "::1:2:3:4:5:6:7:8" , Version : proto .Int32 (6 )},
593+ Expected : results .Violations (
594+ & validate.Violation {
595+ ConstraintId : proto .String ("library.is_ip" ),
596+ },
597+ ),
598+ },
599+ "version/6/valid/ipv6/1h16_double_colon_2h16" : {
600+ Message : & cases.IsIp {Val : "1::1:2" , Version : proto .Int32 (6 )},
601+ Expected : results .Success (true ),
602+ },
603+ "version/6/valid/ipv6/1h16_double_colon_3h16" : {
604+ Message : & cases.IsIp {Val : "1::1:2:3" , Version : proto .Int32 (6 )},
605+ Expected : results .Success (true ),
606+ },
607+ "version/6/valid/ipv6/1h16_double_colon_4h16" : {
608+ Message : & cases.IsIp {Val : "1::1:2:3:4" , Version : proto .Int32 (6 )},
609+ Expected : results .Success (true ),
610+ },
611+ "version/6/valid/ipv6/1h16_double_colon_5h16" : {
612+ Message : & cases.IsIp {Val : "1::1:2:3:4:5" , Version : proto .Int32 (6 )},
613+ Expected : results .Success (true ),
614+ },
615+ "version/6/valid/ipv6/1h16_double_colon_6h16" : {
616+ Message : & cases.IsIp {Val : "1::1:2:3:4:5:6" , Version : proto .Int32 (6 )},
617+ Expected : results .Success (true ),
618+ },
619+ "version/6/invalid/ipv6/1h16_double_colon_7h16" : {
620+ Message : & cases.IsIp {Val : "1::1:2:3:4:5:6:7" , Version : proto .Int32 (6 )},
621+ Expected : results .Violations (
622+ & validate.Violation {
623+ ConstraintId : proto .String ("library.is_ip" ),
624+ },
625+ ),
626+ },
503627 }
504628}
0 commit comments