LONGBOW_TEST_CASE(Global, athenaFIB_RemoveLink) { TestData *data = longBowTestCase_GetClipBoardData(testCase); athenaFIB_AddRoute(data->testFIB, data->testName1, data->testVector1); athenaFIB_AddRoute(data->testFIB, data->testName2, data->testVector2); PARCBitVector *result = athenaFIB_Lookup(data->testFIB, data->testName1, NULL); assertTrue(parcBitVector_Equals(result, data->testVector1), "Expected lookup to equal test vector"); parcBitVector_Release(&result); result = athenaFIB_Lookup(data->testFIB, data->testName2, NULL); assertTrue(parcBitVector_Equals(result, data->testVector2), "Expected lookup to equal test vector"); parcBitVector_Release(&result); athenaFIB_RemoveLink(data->testFIB, data->testVector1); result = athenaFIB_Lookup(data->testFIB, data->testName1, NULL); assertNull(result, "Expecting a NULL result from Lookup after Delete Route"); result = athenaFIB_Lookup(data->testFIB, data->testName2, NULL); assertTrue(parcBitVector_Equals(result, data->testVector2), "Expected lookup to equal test vector"); parcBitVector_Release(&result); athenaFIB_AddRoute(data->testFIB, data->testName1, data->testVector12); athenaFIB_RemoveLink(data->testFIB, data->testVector2); result = athenaFIB_Lookup(data->testFIB, data->testName2, NULL); assertNull(result, "Expecting a NULL result from Lookup after Delete Route"); result = athenaFIB_Lookup(data->testFIB, data->testName1, NULL); assertTrue(parcBitVector_Equals(result, data->testVector1), "Expected lookup to equal test vector"); parcBitVector_Release(&result); }
static void _removeLink(void *context, PARCBitVector *linkVector) { Athena *athena = (Athena *) context; const char *linkVectorString = parcBitVector_ToString(linkVector); // cleanup specified links from the FIB and PIT, these calls are currently presumed synchronous bool result = athenaFIB_RemoveLink(athena->athenaFIB, linkVector); assertTrue(result, "Failed to remove link from FIB %s", linkVectorString); result = athenaPIT_RemoveLink(athena->athenaPIT, linkVector); assertTrue(result, "Failed to remove link from PIT %s", linkVectorString); parcMemory_Deallocate(&linkVectorString); }