@@ -2217,3 +2217,122 @@ func TestDeallocateEmptyCIDR(t *testing.T) {
22172217 assert .True (t , exists , "ENI should still exist" )
22182218 })
22192219}
2220+
2221+ func TestDataStore_IsENIExcludedForPodIPs (t * testing.T ) {
2222+ ds := NewDataStore (Testlog , NullCheckpoint {}, false , defaultNetworkCard )
2223+ eniID := "eni-test"
2224+ err := ds .AddENI (eniID , 1 , false , false , false , 0 , "" )
2225+ assert .NoError (t , err )
2226+ assert .False (t , ds .IsENIExcludedForPodIPs (eniID ))
2227+ err = ds .SetENIExcludedForPodIPs (eniID , true )
2228+ assert .NoError (t , err )
2229+ assert .True (t , ds .IsENIExcludedForPodIPs (eniID ))
2230+ assert .False (t , ds .IsENIExcludedForPodIPs ("non-existent" ))
2231+ }
2232+
2233+ func TestDataStore_GetTrunkENI (t * testing.T ) {
2234+ ds := NewDataStore (Testlog , NullCheckpoint {}, false , defaultNetworkCard )
2235+ assert .Equal (t , "" , ds .GetTrunkENI ())
2236+ err := ds .AddENI ("eni-regular" , 1 , false , false , false , 0 , "" )
2237+ assert .NoError (t , err )
2238+ assert .Equal (t , "" , ds .GetTrunkENI ())
2239+ err = ds .AddENI ("eni-trunk" , 2 , false , true , false , 0 , "" )
2240+ assert .NoError (t , err )
2241+ assert .Equal (t , "eni-trunk" , ds .GetTrunkENI ())
2242+ }
2243+
2244+ func TestDataStore_GetEFAENIs (t * testing.T ) {
2245+ ds := NewDataStore (Testlog , NullCheckpoint {}, false , defaultNetworkCard )
2246+ efas := ds .GetEFAENIs ()
2247+ assert .Empty (t , efas )
2248+ err := ds .AddENI ("eni-regular" , 1 , false , false , false , 0 , "" )
2249+ assert .NoError (t , err )
2250+ efas = ds .GetEFAENIs ()
2251+ assert .Empty (t , efas )
2252+ err = ds .AddENI ("eni-efa1" , 2 , false , false , true , 0 , "" )
2253+ assert .NoError (t , err )
2254+ err = ds .AddENI ("eni-efa2" , 3 , false , false , true , 0 , "" )
2255+ assert .NoError (t , err )
2256+ efas = ds .GetEFAENIs ()
2257+ assert .Len (t , efas , 2 )
2258+ assert .True (t , efas ["eni-efa1" ])
2259+ assert .True (t , efas ["eni-efa2" ])
2260+ }
2261+
2262+ func TestDivCeil (t * testing.T ) {
2263+ assert .Equal (t , 1 , DivCeil (1 , 1 ))
2264+ assert .Equal (t , 2 , DivCeil (3 , 2 ))
2265+ assert .Equal (t , 3 , DivCeil (5 , 2 ))
2266+ assert .Equal (t , 5 , DivCeil (10 , 2 ))
2267+ assert .Equal (t , 1 , DivCeil (1 , 10 ))
2268+ }
2269+
2270+ func TestGetPrefixDelegationDefaults (t * testing.T ) {
2271+ numPrefixes , numIPs , prefixLen := GetPrefixDelegationDefaults ()
2272+ assert .Equal (t , 1 , numPrefixes )
2273+ assert .Equal (t , 16 , numIPs )
2274+ assert .Equal (t , 28 , prefixLen )
2275+ }
2276+
2277+ func TestDataStore_CheckFreeableENIexists (t * testing.T ) {
2278+ ds := NewDataStore (Testlog , NullCheckpoint {}, false , defaultNetworkCard )
2279+ assert .False (t , ds .CheckFreeableENIexists ())
2280+ err := ds .AddENI ("eni-primary" , 0 , true , false , false , 0 , "" )
2281+ assert .NoError (t , err )
2282+ assert .False (t , ds .CheckFreeableENIexists ())
2283+ err = ds .AddENI ("eni-secondary" , 1 , false , false , false , 0 , "" )
2284+ assert .NoError (t , err )
2285+ assert .True (t , ds .CheckFreeableENIexists ())
2286+ err = ds .AddENI ("eni-trunk" , 2 , false , true , false , 0 , "" )
2287+ assert .NoError (t , err )
2288+ assert .True (t , ds .CheckFreeableENIexists ())
2289+ err = ds .AddENI ("eni-efa" , 3 , false , false , true , 0 , "" )
2290+ assert .NoError (t , err )
2291+ assert .True (t , ds .CheckFreeableENIexists ())
2292+ }
2293+
2294+ func TestDataStoreStats_String (t * testing.T ) {
2295+ stats := & DataStoreStats {TotalIPs : 10 , AssignedIPs : 5 }
2296+ str := stats .String ()
2297+ assert .Contains (t , str , "Total" )
2298+ }
2299+
2300+ func TestDataStore_FreeableIPs (t * testing.T ) {
2301+ ds := NewDataStore (Testlog , NullCheckpoint {}, false , defaultNetworkCard )
2302+ eniID := "eni-test"
2303+ err := ds .AddENI (eniID , 1 , false , false , false , 0 , "" )
2304+ assert .NoError (t , err )
2305+ _ , ipnet1 , _ := net .ParseCIDR ("10.0.1.1/32" )
2306+ err = ds .AddIPv4CidrToStore (eniID , * ipnet1 , false )
2307+ assert .NoError (t , err )
2308+ _ , ipnet2 , _ := net .ParseCIDR ("10.0.1.2/32" )
2309+ err = ds .AddIPv4CidrToStore (eniID , * ipnet2 , false )
2310+ assert .NoError (t , err )
2311+ freeableIPs := ds .FreeableIPs (eniID )
2312+ assert .Len (t , freeableIPs , 2 )
2313+ }
2314+
2315+ func TestDataStore_GetFreePrefixes (t * testing.T ) {
2316+ ds := NewDataStore (Testlog , NullCheckpoint {}, true , defaultNetworkCard )
2317+ eniID := "eni-test"
2318+ err := ds .AddENI (eniID , 1 , false , false , false , 0 , "" )
2319+ assert .NoError (t , err )
2320+ _ , ipnet , _ := net .ParseCIDR ("10.0.1.0/28" )
2321+ err = ds .AddIPv4CidrToStore (eniID , * ipnet , true )
2322+ assert .NoError (t , err )
2323+ freePrefixes := ds .GetFreePrefixes ()
2324+ assert .Equal (t , 1 , freePrefixes )
2325+ }
2326+
2327+ func TestDataStore_FindFreeableCidrs (t * testing.T ) {
2328+ ds := NewDataStore (Testlog , NullCheckpoint {}, true , defaultNetworkCard )
2329+ eniID := "eni-test"
2330+ err := ds .AddENI (eniID , 1 , false , false , false , 0 , "" )
2331+ assert .NoError (t , err )
2332+ _ , ipnet , _ := net .ParseCIDR ("10.0.1.0/28" )
2333+ err = ds .AddIPv4CidrToStore (eniID , * ipnet , true )
2334+ assert .NoError (t , err )
2335+ cidrs := ds .FindFreeableCidrs (eniID )
2336+ assert .Len (t , cidrs , 1 )
2337+ }
2338+
0 commit comments