@@ -563,7 +563,83 @@ func TestMetrics(t *testing.T) {
563
563
deleteIPSetLatencyCalls : 1 ,
564
564
deleteNestedLatencyCalls : 1 ,
565
565
}.test (t )
566
+ }
567
+
568
+ func TestMetricsMaxMember (t * testing.T ) {
569
+ hns := GetHNSFake (t , "azure" )
570
+ io := common .NewMockIOShimWithFakeHNS (hns )
571
+ iMgr := NewIPSetManager (applyAlwaysCfg , io )
572
+
573
+ nsW := NewIPSetMetadata ("w" , Namespace )
574
+ nsX := NewIPSetMetadata ("x" , Namespace )
575
+ nsY := NewIPSetMetadata ("y" , Namespace )
576
+ nsList1 := NewIPSetMetadata ("list1" , KeyLabelOfNamespace )
566
577
578
+ iMgr .CreateIPSets ([]* IPSetMetadata {nsW , nsX , nsY , nsList1 })
579
+ count , err := metrics .MaxIPSetMembers ()
580
+ require .Nil (t , err , "failed to get metric" )
581
+ require .Equal (t , 0 , count )
582
+
583
+ iMgr .AddToSets ([]* IPSetMetadata {nsW , nsX }, "1.1.1.1" , "pod1" )
584
+ count , err = metrics .MaxIPSetMembers ()
585
+ require .Nil (t , err , "failed to get metric" )
586
+ require .Equal (t , 1 , count )
587
+
588
+ iMgr .AddToLists ([]* IPSetMetadata {nsList1 }, []* IPSetMetadata {nsW })
589
+ count , err = metrics .MaxIPSetMembers ()
590
+ require .Nil (t , err , "failed to get metric" )
591
+ require .Equal (t , 1 , count )
592
+
593
+ iMgr .AddToLists ([]* IPSetMetadata {nsList1 }, []* IPSetMetadata {nsX , nsY })
594
+ count , err = metrics .MaxIPSetMembers ()
595
+ require .Nil (t , err , "failed to get metric" )
596
+ require .Equal (t , 3 , count )
597
+
598
+ iMgr .AddToSets ([]* IPSetMetadata {nsX }, "2.2.2.2" , "pod2" )
599
+ count , err = metrics .MaxIPSetMembers ()
600
+ require .Nil (t , err , "failed to get metric" )
601
+ require .Equal (t , 3 , count )
602
+
603
+ iMgr .RemoveFromList (nsList1 , []* IPSetMetadata {nsX , nsY })
604
+ count , err = metrics .MaxIPSetMembers ()
605
+ require .Nil (t , err , "failed to get metric" )
606
+ require .Equal (t , 2 , count )
607
+
608
+ iMgr .AddToSets ([]* IPSetMetadata {nsX }, "3.3.3.3" , "pod3" )
609
+ count , err = metrics .MaxIPSetMembers ()
610
+ require .Nil (t , err , "failed to get metric" )
611
+ require .Equal (t , 3 , count )
612
+
613
+ iMgr .AddToSets ([]* IPSetMetadata {nsX }, "3.3.3.3" , "pod3-changed" )
614
+ count , err = metrics .MaxIPSetMembers ()
615
+ require .Nil (t , err , "failed to get metric" )
616
+ require .Equal (t , 3 , count )
617
+
618
+ iMgr .AddToSets ([]* IPSetMetadata {nsX }, "4.4.4.4" , "pod4" )
619
+ count , err = metrics .MaxIPSetMembers ()
620
+ require .Nil (t , err , "failed to get metric" )
621
+ require .Equal (t , 4 , count )
622
+
623
+ iMgr .RemoveFromSets ([]* IPSetMetadata {nsX }, "4.4.4.4" , "pod4" )
624
+ count , err = metrics .MaxIPSetMembers ()
625
+ require .Nil (t , err , "failed to get metric" )
626
+ require .Equal (t , 3 , count )
627
+
628
+ iMgr .RemoveFromSets ([]* IPSetMetadata {nsX }, "3.3.3.3" , "wrong-pod" )
629
+ count , err = metrics .MaxIPSetMembers ()
630
+ require .Nil (t , err , "failed to get metric" )
631
+ require .Equal (t , 3 , count )
632
+
633
+ // can't delete this set
634
+ iMgr .DeleteIPSet (nsX .GetPrefixName (), util .SoftDelete )
635
+ count , err = metrics .MaxIPSetMembers ()
636
+ require .Nil (t , err , "failed to get metric" )
637
+ require .Equal (t , 3 , count )
638
+
639
+ iMgr .DeleteIPSet (nsX .GetPrefixName (), util .ForceDelete )
640
+ count , err = metrics .MaxIPSetMembers ()
641
+ require .Nil (t , err , "failed to get metric" )
642
+ require .Equal (t , 1 , count )
567
643
}
568
644
569
645
func verifyHNSCache (t * testing.T , expected map [string ]hcn.SetPolicySetting , hns * hnswrapper.Hnsv2wrapperFake ) {
0 commit comments