From: Nick Porter Date: Tue, 16 Aug 2022 14:33:18 +0000 (+0100) Subject: Add "flat list" nested attributes to tests of fr_pair_find_by_da_nested() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3e1f5a78d6b6975b7a8e13793edf6bcdb4b8974;p=thirdparty%2Ffreeradius-server.git Add "flat list" nested attributes to tests of fr_pair_find_by_da_nested() --- diff --git a/src/lib/util/pair_tests.c b/src/lib/util/pair_tests.c index fd67506d8cf..b443ab9072b 100644 --- a/src/lib/util/pair_tests.c +++ b/src/lib/util/pair_tests.c @@ -260,7 +260,7 @@ static void test_fr_pair_find_by_child_num_idx(void) static void test_fr_pair_find_by_da_nested(void) { - fr_pair_t *vp1, *vp2, *vp3, *vp_found; + fr_pair_t *vp1, *vp2, *vp3, *vp4, *vp5, *vp_found; fr_pair_list_t local_pairs; fr_pair_list_init(&local_pairs); @@ -318,6 +318,38 @@ static void test_fr_pair_find_by_da_nested(void) TEST_CASE("Find child node after third TLV"); TEST_CHECK(vp_found == NULL); + /* + * Add some "flat list" attributes + */ + MEM(vp4 = fr_pair_afrom_da(autofree, fr_dict_attr_test_nested_leaf_string)); + fr_pair_prepend(&local_pairs, vp4); + MEM(vp5 = fr_pair_afrom_da(autofree, fr_dict_attr_test_nested_leaf_string)); + fr_pair_append(&local_pairs, vp5); + + /* + * Repeat search 5 times to find all instances and then NULL + * fr_pair_find_by_da_nested searches nested first then flat + */ + vp_found = fr_pair_find_by_da_nested(&local_pairs, NULL, fr_dict_attr_test_nested_leaf_string); + TEST_CASE("Find child node in first TLV"); + TEST_CHECK(vp_found == vp1); + + vp_found = fr_pair_find_by_da_nested(&local_pairs, vp_found, fr_dict_attr_test_nested_leaf_string); + TEST_CASE("Find child node in third TLV"); + TEST_CHECK(vp_found == vp3); + + vp_found = fr_pair_find_by_da_nested(&local_pairs, vp_found, fr_dict_attr_test_nested_leaf_string); + TEST_CASE("Find first entry in \"flat\" list"); + TEST_CHECK(vp_found == vp4); + + vp_found = fr_pair_find_by_da_nested(&local_pairs, vp_found, fr_dict_attr_test_nested_leaf_string); + TEST_CASE("Find second \"flat\" list entry"); + TEST_CHECK(vp_found == vp5); + + vp_found = fr_pair_find_by_da_nested(&local_pairs, vp_found, fr_dict_attr_test_nested_leaf_string); + TEST_CASE("Find NULL at end of list"); + TEST_CHECK(vp_found == NULL); + fr_pair_list_free(&local_pairs); }