END_TEST START_TEST(test_bdd_assignment_cut_1) { ipset_assignment_t *a1; ipset_assignment_t *a2; a1 = ipset_assignment_new(); ipset_assignment_set(a1, 0, IPSET_TRUE); ipset_assignment_set(a1, 1, IPSET_FALSE); a2 = ipset_assignment_new(); ipset_assignment_set(a2, 0, IPSET_TRUE); ipset_assignment_set(a2, 1, IPSET_FALSE); ipset_assignment_set(a2, 2, IPSET_TRUE); ipset_assignment_set(a2, 3, IPSET_TRUE); ipset_assignment_set(a2, 4, IPSET_FALSE); ipset_assignment_cut(a2, 2); fail_unless(ipset_assignment_equal(a1, a2), "Assignments should be equal"); ipset_assignment_free(a1); ipset_assignment_free(a2); }
void ipset_bdd_iterator_free(struct ipset_bdd_iterator *iterator) { cork_array_done(&iterator->stack); ipset_assignment_free(iterator->assignment); free(iterator); }
END_TEST START_TEST(test_bdd_assignment_expand_3) { ipset_assignment_t *a; a = ipset_assignment_new(); ipset_assignment_set(a, 0, TRUE); ipset_assignment_set(a, 2, FALSE); ipset_expanded_assignment_t *it; it = ipset_assignment_expand(a, 3); GByteArray *ea = g_byte_array_sized_new(1); memset(ea->data, 0, 1); fail_if(it->finished, "Expanded assignment shouldn't be empty"); IPSET_BIT_SET(ea->data, 0, TRUE); IPSET_BIT_SET(ea->data, 1, FALSE); IPSET_BIT_SET(ea->data, 2, FALSE); fail_unless(memcmp(ea->data, it->values->data, 1) == 0, "Expanded assignment 1 doesn't match"); ipset_expanded_assignment_advance(it); fail_if(it->finished, "Expanded assignment should have at least 1 element"); IPSET_BIT_SET(ea->data, 0, TRUE); IPSET_BIT_SET(ea->data, 1, TRUE); IPSET_BIT_SET(ea->data, 2, FALSE); fail_unless(memcmp(ea->data, it->values->data, 1) == 0, "Expanded assignment 2 doesn't match"); ipset_expanded_assignment_advance(it); fail_unless(it->finished, "Expanded assignment should have 2 elements"); g_byte_array_free(ea, TRUE); ipset_expanded_assignment_free(it); ipset_assignment_free(a); }