@@ -181,23 +181,25 @@ class PrefixManagerTestFixture : public ::testing::Test {
181181};
182182
183183TEST_F (PrefixManagerTestFixture, AddRemovePrefix) {
184- auto resp1 = prefixManagerClient->withdrawPrefixes ({addr1 });
184+ auto resp1 = prefixManagerClient->withdrawPrefixes ({prefixEntry1 });
185185 auto resp2 = prefixManagerClient->addPrefixes ({prefixEntry1});
186186 auto resp3 = prefixManagerClient->addPrefixes ({prefixEntry1});
187- auto resp4 = prefixManagerClient->withdrawPrefixes ({addr1 });
188- auto resp5 = prefixManagerClient->withdrawPrefixes ({addr3 });
187+ auto resp4 = prefixManagerClient->withdrawPrefixes ({prefixEntry1 });
188+ auto resp5 = prefixManagerClient->withdrawPrefixes ({prefixEntry3 });
189189 auto resp6 = prefixManagerClient->addPrefixes ({prefixEntry2});
190190 auto resp7 = prefixManagerClient->addPrefixes ({prefixEntry3});
191191 auto resp8 = prefixManagerClient->addPrefixes ({prefixEntry4});
192192 auto resp9 = prefixManagerClient->addPrefixes ({prefixEntry3});
193- auto resp10 = prefixManagerClient->withdrawPrefixes ({addr2 });
194- auto resp11 = prefixManagerClient->withdrawPrefixes ({addr3 });
195- auto resp12 = prefixManagerClient->withdrawPrefixes ({addr4 });
193+ auto resp10 = prefixManagerClient->withdrawPrefixes ({prefixEntry2 });
194+ auto resp11 = prefixManagerClient->withdrawPrefixes ({prefixEntry3 });
195+ auto resp12 = prefixManagerClient->withdrawPrefixes ({prefixEntry4 });
196196 auto resp13 = prefixManagerClient->addPrefixes (
197197 {prefixEntry1, prefixEntry2, prefixEntry3});
198- auto resp14 = prefixManagerClient->withdrawPrefixes ({addr1, addr2});
199- auto resp15 = prefixManagerClient->withdrawPrefixes ({addr1, addr2});
200- auto resp16 = prefixManagerClient->withdrawPrefixes ({addr4});
198+ auto resp14 =
199+ prefixManagerClient->withdrawPrefixes ({prefixEntry1, prefixEntry2});
200+ auto resp15 =
201+ prefixManagerClient->withdrawPrefixes ({prefixEntry1, prefixEntry2});
202+ auto resp16 = prefixManagerClient->withdrawPrefixes ({prefixEntry4});
201203 EXPECT_FALSE (resp1.value ().success );
202204 EXPECT_TRUE (resp2.value ().success );
203205 EXPECT_FALSE (resp3.value ().success );
@@ -225,7 +227,7 @@ TEST_F(PrefixManagerTestFixture, RemoveUpdateType) {
225227 prefixManagerClient->addPrefixes ({prefixEntry6});
226228 prefixManagerClient->addPrefixes ({prefixEntry7});
227229 prefixManagerClient->addPrefixes ({prefixEntry8});
228- auto resp1 = prefixManagerClient->withdrawPrefixes ({addr1 });
230+ auto resp1 = prefixManagerClient->withdrawPrefixes ({prefixEntry1 });
229231 EXPECT_TRUE (resp1.value ().success );
230232 auto resp2 =
231233 prefixManagerClient->withdrawPrefixesByType (thrift::PrefixType::DEFAULT);
@@ -235,20 +237,20 @@ TEST_F(PrefixManagerTestFixture, RemoveUpdateType) {
235237 prefixManagerClient->withdrawPrefixesByType (thrift::PrefixType::DEFAULT);
236238 EXPECT_FALSE (resp3.value ().success );
237239 // all the DEFAULT type should be gone
238- auto resp4 = prefixManagerClient->withdrawPrefixes ({addr3 });
240+ auto resp4 = prefixManagerClient->withdrawPrefixes ({prefixEntry3 });
239241 EXPECT_FALSE (resp4.value ().success );
240- auto resp5 = prefixManagerClient->withdrawPrefixes ({addr5 });
242+ auto resp5 = prefixManagerClient->withdrawPrefixes ({prefixEntry5 });
241243 EXPECT_FALSE (resp5.value ().success );
242- auto resp6 = prefixManagerClient->withdrawPrefixes ({addr7 });
244+ auto resp6 = prefixManagerClient->withdrawPrefixes ({prefixEntry7 });
243245 EXPECT_FALSE (resp6.value ().success );
244246 // The PREFIX_ALLOCATOR type should still be there to be withdrawed
245- auto resp7 = prefixManagerClient->withdrawPrefixes ({addr2 });
247+ auto resp7 = prefixManagerClient->withdrawPrefixes ({prefixEntry2 });
246248 EXPECT_TRUE (resp7.value ().success );
247- auto resp8 = prefixManagerClient->withdrawPrefixes ({addr4 });
249+ auto resp8 = prefixManagerClient->withdrawPrefixes ({prefixEntry4 });
248250 EXPECT_TRUE (resp8.value ().success );
249- auto resp9 = prefixManagerClient->withdrawPrefixes ({addr6 });
251+ auto resp9 = prefixManagerClient->withdrawPrefixes ({prefixEntry6 });
250252 EXPECT_TRUE (resp9.value ().success );
251- auto resp10 = prefixManagerClient->withdrawPrefixes ({addr8 });
253+ auto resp10 = prefixManagerClient->withdrawPrefixes ({prefixEntry8 });
252254 EXPECT_TRUE (resp10.value ().success );
253255 auto resp11 = prefixManagerClient->withdrawPrefixesByType (
254256 thrift::PrefixType::PREFIX_ALLOCATOR);
@@ -264,10 +266,42 @@ TEST_F(PrefixManagerTestFixture, RemoveUpdateType) {
264266 EXPECT_TRUE (resp12.value ().success );
265267 EXPECT_FALSE (resp13.value ().success );
266268
267- EXPECT_FALSE (prefixManagerClient->withdrawPrefixes ({addr2}).value ().success );
268- EXPECT_FALSE (prefixManagerClient->withdrawPrefixes ({addr4}).value ().success );
269- EXPECT_TRUE (prefixManagerClient->withdrawPrefixes ({addr6}).value ().success );
270- EXPECT_TRUE (prefixManagerClient->withdrawPrefixes ({addr8}).value ().success );
269+ EXPECT_FALSE (
270+ prefixManagerClient->withdrawPrefixes ({prefixEntry2}).value ().success );
271+ EXPECT_FALSE (
272+ prefixManagerClient->withdrawPrefixes ({prefixEntry4}).value ().success );
273+ EXPECT_TRUE (
274+ prefixManagerClient->withdrawPrefixes ({prefixEntry6}).value ().success );
275+ EXPECT_TRUE (
276+ prefixManagerClient->withdrawPrefixes ({prefixEntry8}).value ().success );
277+ }
278+
279+ TEST_F (PrefixManagerTestFixture, RemoveInvalidType) {
280+ EXPECT_TRUE (prefixManagerClient->addPrefixes ({prefixEntry1}).value ().success );
281+ EXPECT_TRUE (prefixManagerClient->addPrefixes ({prefixEntry2}).value ().success );
282+
283+ // Verify that prefix type has to match for withdrawing prefix
284+ auto prefixEntryError = prefixEntry1;
285+ prefixEntryError.type = thrift::PrefixType::PREFIX_ALLOCATOR;
286+
287+ auto resp1 =
288+ prefixManagerClient->withdrawPrefixes ({prefixEntryError, prefixEntry2});
289+ EXPECT_FALSE (resp1.value ().success );
290+
291+ // Verify that all prefixes are still present
292+ auto resp2 = prefixManagerClient->getPrefixes ();
293+ EXPECT_TRUE (resp2.value ().success );
294+ EXPECT_EQ (2 , resp2.value ().prefixes .size ());
295+
296+ // Verify withdrawing of multiple prefixes
297+ auto resp3 =
298+ prefixManagerClient->withdrawPrefixes ({prefixEntry1, prefixEntry2});
299+ EXPECT_TRUE (resp3.value ().success );
300+
301+ // Verify that there are no prefixes
302+ auto resp4 = prefixManagerClient->getPrefixes ();
303+ EXPECT_TRUE (resp4.value ().success );
304+ EXPECT_EQ (0 , resp4.value ().prefixes .size ());
271305}
272306
273307TEST_F (PrefixManagerTestFixture, VerifyKvStore) {
@@ -322,8 +356,10 @@ TEST_F(PrefixManagerTestFixture, CheckReload) {
322356 PrefixManagerLocalCmdUrl{prefixManager2->inprocCmdUrl }, context);
323357
324358 // verify that the new manager has what the first manager had
325- EXPECT_TRUE (prefixManagerClient2->withdrawPrefixes ({addr1}).value ().success );
326- EXPECT_TRUE (prefixManagerClient2->withdrawPrefixes ({addr2}).value ().success );
359+ EXPECT_TRUE (
360+ prefixManagerClient2->withdrawPrefixes ({prefixEntry1}).value ().success );
361+ EXPECT_TRUE (
362+ prefixManagerClient2->withdrawPrefixes ({prefixEntry2}).value ().success );
327363 // cleanup
328364 prefixManager2->stop ();
329365 prefixManagerThread2->join ();
@@ -387,7 +423,7 @@ TEST_F(PrefixManagerTestFixture, PrefixAddCount) {
387423 auto count2 = prefixManager->getPrefixAddCounter ();
388424 EXPECT_EQ (5 , count2);
389425
390- prefixManagerClient->withdrawPrefixes ({addr1 });
426+ prefixManagerClient->withdrawPrefixes ({prefixEntry1 });
391427 auto count3 = prefixManager->getPrefixAddCounter ();
392428 EXPECT_EQ (5 , count3);
393429}
@@ -396,7 +432,7 @@ TEST_F(PrefixManagerTestFixture, PrefixWithdrawCount) {
396432 auto count0 = prefixManager->getPrefixWithdrawCounter ();
397433 EXPECT_EQ (0 , count0);
398434
399- prefixManagerClient->withdrawPrefixes ({addr1 });
435+ prefixManagerClient->withdrawPrefixes ({prefixEntry1 });
400436 auto count1 = prefixManager->getPrefixWithdrawCounter ();
401437 EXPECT_EQ (0 , count1);
402438
@@ -407,16 +443,16 @@ TEST_F(PrefixManagerTestFixture, PrefixWithdrawCount) {
407443 auto count2 = prefixManager->getPrefixWithdrawCounter ();
408444 EXPECT_EQ (0 , count2);
409445
410- prefixManagerClient->withdrawPrefixes ({addr1 });
446+ prefixManagerClient->withdrawPrefixes ({prefixEntry1 });
411447 auto count3 = prefixManager->getPrefixWithdrawCounter ();
412448 EXPECT_EQ (1 , count3);
413449
414- prefixManagerClient->withdrawPrefixes ({addr4 });
450+ prefixManagerClient->withdrawPrefixes ({prefixEntry4 });
415451 auto count4 = prefixManager->getPrefixWithdrawCounter ();
416452 EXPECT_EQ (1 , count4);
417453
418- prefixManagerClient->withdrawPrefixes ({addr1 });
419- prefixManagerClient->withdrawPrefixes ({addr2 });
454+ prefixManagerClient->withdrawPrefixes ({prefixEntry1 });
455+ prefixManagerClient->withdrawPrefixes ({prefixEntry2 });
420456 auto count5 = prefixManager->getPrefixWithdrawCounter ();
421457 EXPECT_EQ (2 , count5);
422458}
0 commit comments