diff --git a/src/tests/dnslib/dnslib_dname_tests.c b/src/tests/dnslib/dnslib_dname_tests.c index cde456dbdcb8f9cd4f8346fa1e79f283e80bbca4..086195c88894268c5a362b2e754bd94c46dfa548 100644 --- a/src/tests/dnslib/dnslib_dname_tests.c +++ b/src/tests/dnslib/dnslib_dname_tests.c @@ -13,9 +13,9 @@ static int dnslib_dname_tests_run(int argc, char *argv[]); /*! Exported unit API. */ unit_api dnslib_dname_tests_api = { - "DNS library - dname", //! Unit name - &dnslib_dname_tests_count, //! Count scheduled tests - &dnslib_dname_tests_run //! Run scheduled tests + "DNS library - dname", //! Unit name + &dnslib_dname_tests_count, //! Count scheduled tests + &dnslib_dname_tests_run //! Run scheduled tests }; /* @@ -37,16 +37,16 @@ struct test_domain { static const struct test_domain test_domains_ok[TEST_DOMAINS_OK] = { - { "abc.test.domain.com.", "\3abc\4test\6domain\3com", 21 }, + { "abc.test.domain.com.", "\3abc\4test\6domain\3com", 21 }, { "some.test.domain.com.", "\4some\4test\6domain\3com", 22 }, { "xyz.test.domain.com.", "\3xyz\4test\6domain\3com", 21 }, - { "some.test.domain.com.", "\4some\4test\6domain\3com", 22 } + { "some.test.domain.com.", "\4some\4test\6domain\3com", 22 } }; static const struct test_domain test_domains_bad[TEST_DOMAINS_BAD] = { { NULL, "\2ex\3com", 8 }, - { "ex.com.", NULL, 0 }, + { "ex.com.", NULL, 0 }, }; @@ -59,15 +59,16 @@ static int test_dname_create() { dnslib_dname_t *dname = dnslib_dname_new(); if (dname == NULL - || dnslib_dname_name(dname) != NULL - || dnslib_dname_size(dname) != 0 - || dnslib_dname_node(dname) != NULL) { + || dnslib_dname_name(dname) != NULL + || dnslib_dname_size(dname) != 0 + || dnslib_dname_node(dname) != NULL) { diag("New domain name not initialized properly!"); return 0; } dnslib_dname_free(&dname); if (dname != NULL) { - diag("Pointer to the structure not set to NULL when deallocating!"); + diag("Pointer to the structure not set to" + "NULL when deallocating!"); return 0; } return 1; @@ -78,12 +79,13 @@ static int test_dname_create() * \retval > 0 on success. * \retval 0 otherwise. */ -static int test_dname_delete() { +static int test_dname_delete() +{ // how to test this?? return 0; } -static int check_domain_name( const dnslib_dname_t *dname, int i ) +static int check_domain_name(const dnslib_dname_t *dname, int i) { int errors = 0; @@ -95,22 +97,24 @@ static int check_domain_name( const dnslib_dname_t *dname, int i ) // check size if (dnslib_dname_size(dname) != test_domains_ok[i].size) { diag("Bad size of the created domain name: %u (should be %u).", - dnslib_dname_size(dname), test_domains_ok[i].size); + dnslib_dname_size(dname), test_domains_ok[i].size); ++errors; } // check wire format uint size = dnslib_dname_size(dname); - if (strncmp((char *)dnslib_dname_name(dname), test_domains_ok[i].wire, size) - != 0) { - diag("The wire format of the created domain name is wrong: '%.*s'" - " (should be '%.*s').", size, dnslib_dname_name(dname), - size, test_domains_ok[i].wire); + if (strncmp((char *)dnslib_dname_name(dname), + test_domains_ok[i].wire, size) != 0) { + diag("The wire format of the created domain name is wrong:" + " '%.*s' (should be '%.*s').", + size, dnslib_dname_name(dname), + size, test_domains_ok[i].wire); ++errors; } // check node if (dnslib_dname_node(dname) != NODE_ADDRESS) { diag("Node pointer in the created domain name is wrong: %p" - " (should be %p)", dnslib_dname_node(dname), NODE_ADDRESS); + " (should be %p)", + dnslib_dname_node(dname), NODE_ADDRESS); ++errors; } @@ -129,7 +133,9 @@ static int test_dname_create_from_str() for (int i = 0; i < TEST_DOMAINS_OK && errors == 0; ++i) { dname = dnslib_dname_new_from_str(test_domains_ok[i].str, - strlen(test_domains_ok[i].str), NODE_ADDRESS); + strlen( + test_domains_ok[i].str), + NODE_ADDRESS); errors += check_domain_name(dname, i); dnslib_dname_free(&dname); } @@ -148,10 +154,12 @@ static int test_dname_create_from_wire() dnslib_dname_t *dname = NULL; for (int i = 0; i < TEST_DOMAINS_OK && errors == 0; ++i) { - assert(strlen(test_domains_ok[i].wire) + 1 == test_domains_ok[i].size); - dname = dnslib_dname_new_from_wire( - (uint8_t *)test_domains_ok[i].wire, test_domains_ok[i].size, - NODE_ADDRESS); + assert(strlen(test_domains_ok[i].wire) + 1 == + test_domains_ok[i].size); + dname = dnslib_dname_new_from_wire((uint8_t *) + test_domains_ok[i].wire, + test_domains_ok[i].size, + NODE_ADDRESS); errors += check_domain_name(dname, i); dnslib_dname_free(&dname); } @@ -170,13 +178,15 @@ static int test_dname_to_str() dnslib_dname_t *dname = NULL; for (int i = 0; i < TEST_DOMAINS_OK && errors == 0; ++i) { - dname = dnslib_dname_new_from_wire( - (uint8_t *)test_domains_ok[i].wire, test_domains_ok[i].size, - NODE_ADDRESS); + dname = dnslib_dname_new_from_wire((uint8_t *) + test_domains_ok[i].wire, + test_domains_ok[i].size, + NODE_ADDRESS); char *name_str = dnslib_dname_to_str(dname); if (strcmp(name_str, test_domains_ok[i].str) != 0) { - diag("Presentation format of domain name wrong: %s (should be %s)", - name_str, test_domains_ok[i].str); + diag("Presentation format of domain name wrong:" + " %s (should be %s)", + name_str, test_domains_ok[i].str); ++errors; } free(name_str); @@ -189,61 +199,67 @@ static int test_dname_to_str() /* called by lives_ok */ static int test_faulty_data() { - dnslib_dname_t *dname = NULL; - - for (int i = 0; i < TEST_DOMAINS_BAD; i++) { + dnslib_dname_t *dname = NULL; - if (test_domains_bad[i].str != NULL) { - dname = dnslib_dname_new_from_str(test_domains_bad[i].str, - strlen(test_domains_bad[i].str), NODE_ADDRESS); - } else { - dname = dnslib_dname_new_from_str(test_domains_bad[i].str, - 0, NODE_ADDRESS); - } + for (int i = 0; i < TEST_DOMAINS_BAD; i++) { + + if (test_domains_bad[i].str != NULL) { + dname = dnslib_dname_new_from_str( + test_domains_bad[i].str, + strlen( + test_domains_bad[i].str), + NODE_ADDRESS); + } else { + dname = dnslib_dname_new_from_str( + test_domains_bad[i].str, + 0, NODE_ADDRESS); + } - dnslib_dname_free(&dname); + dnslib_dname_free(&dname); - dname = dnslib_dname_new_from_wire((uint8_t *)test_domains_bad[i].wire, - test_domains_bad[i].size, NODE_ADDRESS); + dname = dnslib_dname_new_from_wire((uint8_t *) + test_domains_bad[i].wire, + test_domains_bad[i].size, + NODE_ADDRESS); - dnslib_dname_free(&dname); - } - return 1; //did it get here? success + dnslib_dname_free(&dname); + } + return 1; //did it get here? success } static int test_dname_compare() { - dnslib_dname_t *dnames[TEST_DOMAINS_OK]; - - for (int i = 0; i < TEST_DOMAINS_OK; ++i) { - dnames[i] = dnslib_dname_new_from_wire( - (uint8_t *)test_domains_ok[i].wire, test_domains_ok[i].size, - NODE_ADDRESS); - } - - int errors = 0; - /* abc < some */ - if (dnslib_dname_compare(dnames[0], dnames[1]) != -1) { - diag("Dname comparison error"); - errors++; - } - /* some == some */ - if (dnslib_dname_compare(dnames[1], dnames[3]) != 0) { - diag("Dname comparison error"); - errors++; - } - /*xyz > some */ - if (dnslib_dname_compare(dnames[2], dnames[1]) != 1) { - diag("Dname comparison error"); - errors++; - } - - for (int i = 0; i < TEST_DOMAINS_OK; i++) - { - dnslib_dname_free(&dnames[i]); - } - - return (errors == 0); + dnslib_dname_t *dnames[TEST_DOMAINS_OK]; + + for (int i = 0; i < TEST_DOMAINS_OK; ++i) { + dnames[i] = dnslib_dname_new_from_wire((uint8_t *) + test_domains_ok[i].wire, + test_domains_ok[i].size, + NODE_ADDRESS); + } + + int errors = 0; + /* abc < some */ + if (dnslib_dname_compare(dnames[0], dnames[1]) != -1) { + diag("Dname comparison error"); + errors++; + } + /* some == some */ + if (dnslib_dname_compare(dnames[1], dnames[3]) != 0) { + diag("Dname comparison error"); + errors++; + } + /*xyz > some */ + if (dnslib_dname_compare(dnames[2], dnames[1]) != 1) { + diag("Dname comparison error"); + errors++; + } + + for (int i = 0; i < TEST_DOMAINS_OK; i++) { + dnslib_dname_free(&dnames[i]); + } + + return (errors == 0); } static const int DNSLIB_DNAME_TEST_COUNT = 7; @@ -253,7 +269,7 @@ static const int DNSLIB_DNAME_TEST_COUNT = 7; */ static int dnslib_dname_tests_count(int argc, char *argv[]) { - return DNSLIB_DNAME_TEST_COUNT; + return DNSLIB_DNAME_TEST_COUNT; } /*! Run all scheduled tests for given parameters. @@ -261,8 +277,8 @@ static int dnslib_dname_tests_count(int argc, char *argv[]) static int dnslib_dname_tests_run(int argc, char *argv[]) { int res_create = 0, - res_str = 0, - res_wire = 0; + res_str = 0, + res_wire = 0; res_create = test_dname_create(); ok(res_create, "dname: create empty"); @@ -283,11 +299,11 @@ static int dnslib_dname_tests_run(int argc, char *argv[]) ok(test_dname_to_str(), "dname: convert to str"); - lives_ok(test_faulty_data();, "dname: faulty data test"); + lives_ok(test_faulty_data(); , "dname: faulty data test"); endskip; /* !res_str || !res_wire */ - ok(test_dname_compare(), "dname: compare"); + ok(test_dname_compare(), "dname: compare"); endskip; /* !res_create */ diff --git a/src/tests/dnslib/dnslib_node_tests.c b/src/tests/dnslib/dnslib_node_tests.c index f7f0b6b62bc22191bf255a8126741e9a37ee71b8..2273a7d357928321494c244f2cd83f56baf7b763 100644 --- a/src/tests/dnslib/dnslib_node_tests.c +++ b/src/tests/dnslib/dnslib_node_tests.c @@ -10,9 +10,9 @@ static int dnslib_node_tests_run(int argc, char *argv[]); /*! Exported unit API. */ unit_api dnslib_node_tests_api = { - "DNS library - node", //! Unit name - &dnslib_node_tests_count, //! Count scheduled tests - &dnslib_node_tests_run //! Run scheduled tests + "DNS library - node", //! Unit name + &dnslib_node_tests_count, //! Count scheduled tests + &dnslib_node_tests_run //! Run scheduled tests }; /* @@ -23,152 +23,159 @@ unit_api dnslib_node_tests_api = { enum { TEST_NODES = 2, RRSETS = 5}; struct test_node { - dnslib_dname_t owner; + dnslib_dname_t owner; dnslib_node_t *parent; uint size; }; static dnslib_dname_t test_dnames[TEST_NODES] = { - {(uint8_t *)"\3www\7example\3com", 17}, - {(uint8_t *)"\3www\7example\3com", 17} + {(uint8_t *)"\3www\7example\3com", 17}, + {(uint8_t *)"\3www\7example\3com", 17} }; static struct test_node test_nodes[TEST_NODES] = { - {{(uint8_t *)"\3com", 4}, (dnslib_node_t *)NULL}, - {{(uint8_t *)"\3www\7example\3com", 17}, (dnslib_node_t *)0xBADDCAFE} + {{(uint8_t *)"\3com", 4}, (dnslib_node_t *)NULL}, + {{(uint8_t *)"\3www\7example\3com", 17}, (dnslib_node_t *)0xBADDCAFE} }; static dnslib_rrset_t rrsets[RRSETS] = { - {&test_dnames[0], 1, 1, 3600, NULL, NULL, NULL, 0}, - {&test_dnames[1], 2, 1, 3600, NULL, NULL, NULL, 0}, - {&test_dnames[1], 7, 1, 3600, NULL, NULL, NULL, 0}, - {&test_dnames[1], 3, 1, 3600, NULL, NULL, NULL, 0}, - {&test_dnames[1], 9, 1, 3600, NULL, NULL, NULL, 0} + {&test_dnames[0], 1, 1, 3600, NULL, NULL, NULL, 0}, + {&test_dnames[1], 2, 1, 3600, NULL, NULL, NULL, 0}, + {&test_dnames[1], 7, 1, 3600, NULL, NULL, NULL, 0}, + {&test_dnames[1], 3, 1, 3600, NULL, NULL, NULL, 0}, + {&test_dnames[1], 9, 1, 3600, NULL, NULL, NULL, 0} }; static int test_node_create() { - dnslib_node_t *tmp; - int errors = 0; - for (int i = 0; i < TEST_NODES && !errors; i++) { - tmp = dnslib_node_new(&test_nodes[i].owner, test_nodes[i].parent); - if (tmp == NULL || tmp->owner != &test_nodes[i].owner || - tmp->parent != test_nodes[i].parent || tmp->rrsets == NULL) { - errors++; - diag("Failed to create node structure"); - } - dnslib_node_free(&tmp); - } - return (errors == 0); + dnslib_node_t *tmp; + int errors = 0; + for (int i = 0; i < TEST_NODES && !errors; i++) { + tmp = dnslib_node_new(&test_nodes[i].owner, + test_nodes[i].parent); + if (tmp == NULL || + tmp->owner != &test_nodes[i].owner || + tmp->parent != test_nodes[i].parent || + tmp->rrsets == NULL) { + errors++; + diag("Failed to create node structure"); + } + dnslib_node_free(&tmp); + } + return (errors == 0); } static int test_node_add_rrset() { - dnslib_node_t *tmp; - dnslib_rrset_t *rrset; - int errors = 0; - for (int i = 0; i < TEST_NODES && !errors; i++) { - tmp = dnslib_node_new(&test_nodes[i].owner, test_nodes[i].parent); - rrset = &rrsets[0]; - if (dnslib_node_add_rrset(tmp, rrset)!=0) { - errors++; - diag("Failed to insert rrset into node"); - } - dnslib_node_free(&tmp); - } - - return (errors == 0); + dnslib_node_t *tmp; + dnslib_rrset_t *rrset; + int errors = 0; + for (int i = 0; i < TEST_NODES && !errors; i++) { + tmp = dnslib_node_new(&test_nodes[i].owner, + test_nodes[i].parent); + rrset = &rrsets[0]; + if (dnslib_node_add_rrset(tmp, rrset) != 0) { + errors++; + diag("Failed to insert rrset into node"); + } + dnslib_node_free(&tmp); + } + + return (errors == 0); } static int test_node_get_rrset() { - dnslib_node_t *tmp; - dnslib_rrset_t *rrset; - int errors = 0; - - dnslib_node_t *nodes[TEST_NODES]; - - for (int i = 0; i < TEST_NODES && !errors; i++) { - tmp = dnslib_node_new(&test_nodes[i].owner, test_nodes[i].parent); - nodes[i]=tmp; - for (int j = 0; j < RRSETS; j++) { - dnslib_node_add_rrset(tmp, &rrsets[j]); - } - } - - for (int i = 0; i < TEST_NODES && !errors; i++) { - for (int j = 0; j < RRSETS; j++) { - rrset = &rrsets[j]; - if (dnslib_node_get_rrset(nodes[i], rrset->type) != rrset) { - errors++; - diag("Failed to get proper rrset from node"); - } - } - dnslib_node_free(&nodes[i]); - } - - return (errors == 0); + dnslib_node_t *tmp; + dnslib_rrset_t *rrset; + int errors = 0; + + dnslib_node_t *nodes[TEST_NODES]; + + for (int i = 0; i < TEST_NODES && !errors; i++) { + tmp = dnslib_node_new(&test_nodes[i].owner, + test_nodes[i].parent); + nodes[i] = tmp; + for (int j = 0; j < RRSETS; j++) { + dnslib_node_add_rrset(tmp, &rrsets[j]); + } + } + + for (int i = 0; i < TEST_NODES && !errors; i++) { + for (int j = 0; j < RRSETS; j++) { + rrset = &rrsets[j]; + if (dnslib_node_get_rrset(nodes[i], rrset->type) + != rrset) { + errors++; + diag("Failed to get proper rrset from node"); + } + } + dnslib_node_free(&nodes[i]); + } + + return (errors == 0); } static int test_node_get_parent() { - dnslib_node_t *tmp; - dnslib_rrset_t *rrset; - int errors = 0; - - dnslib_node_t *nodes[TEST_NODES]; - - for (int i = 0; i < TEST_NODES && !errors; i++) { - tmp = dnslib_node_new(&test_nodes[i].owner, test_nodes[i].parent); - nodes[i]=tmp; - rrset = &rrsets[i]; - dnslib_node_add_rrset(tmp, rrset); - } - - for (int i = 0; i < TEST_NODES && !errors; i++) { - rrset = &rrsets[i]; - if (dnslib_node_get_parent(nodes[i]) != test_nodes[i].parent) { - errors++; - diag("Failed to get proper parent from node"); - } - dnslib_node_free(&nodes[i]); - } - return (errors == 0); + dnslib_node_t *tmp; + dnslib_rrset_t *rrset; + int errors = 0; + + dnslib_node_t *nodes[TEST_NODES]; + + for (int i = 0; i < TEST_NODES && !errors; i++) { + tmp = dnslib_node_new(&test_nodes[i].owner, + test_nodes[i].parent); + nodes[i] = tmp; + rrset = &rrsets[i]; + dnslib_node_add_rrset(tmp, rrset); + } + + for (int i = 0; i < TEST_NODES && !errors; i++) { + rrset = &rrsets[i]; + if (dnslib_node_get_parent(nodes[i]) != test_nodes[i].parent) { + errors++; + diag("Failed to get proper parent from node"); + } + dnslib_node_free(&nodes[i]); + } + return (errors == 0); } static int test_node_sorting() { - dnslib_node_t *tmp; - dnslib_rrset_t *rrset; - int errors = 0; - - tmp = dnslib_node_new(&test_nodes[0].owner, test_nodes[0].parent); - - for (int i = 0; i < RRSETS && !errors; i++) { - rrset = &rrsets[i]; - dnslib_node_add_rrset(tmp, rrset); - } - - const skip_node *node; - - node = skip_first(tmp->rrsets); - - int last = *((uint16_t *)node->key); - - while ((node = skip_next(node))!=NULL) { - if (last > *((uint16_t *)node->key)) { - errors++; - diag("RRset sorting error"); - } - } - - dnslib_node_free(&tmp); - return (errors == 0); + dnslib_node_t *tmp; + dnslib_rrset_t *rrset; + int errors = 0; + + tmp = dnslib_node_new(&test_nodes[0].owner, test_nodes[0].parent); + + for (int i = 0; i < RRSETS && !errors; i++) { + rrset = &rrsets[i]; + dnslib_node_add_rrset(tmp, rrset); + } + + const skip_node *node; + + node = skip_first(tmp->rrsets); + + int last = *((uint16_t *)node->key); + + while ((node = skip_next(node)) != NULL) { + if (last > *((uint16_t *)node->key)) { + errors++; + diag("RRset sorting error"); + } + } + + dnslib_node_free(&tmp); + return (errors == 0); } static int test_node_delete() { - return 0; + return 0; } static const int DNSLIB_NODE_TEST_COUNT = 6; @@ -178,7 +185,7 @@ static const int DNSLIB_NODE_TEST_COUNT = 6; */ static int dnslib_node_tests_count(int argc, char *argv[]) { - return DNSLIB_NODE_TEST_COUNT; + return DNSLIB_NODE_TEST_COUNT; } /*! Run all scheduled tests for given parameters. @@ -186,27 +193,27 @@ static int dnslib_node_tests_count(int argc, char *argv[]) static int dnslib_node_tests_run(int argc, char *argv[]) { - int ret; - ret = test_node_create(); - ok(ret, "node: create"); + int ret; + ret = test_node_create(); + ok(ret, "node: create"); - skip(!ret, 4) + skip(!ret, 4) - ok(test_node_add_rrset(), "node: add"); + ok(test_node_add_rrset(), "node: add"); - ok(test_node_get_rrset(), "node: get"); + ok(test_node_get_rrset(), "node: get"); - ok(test_node_get_parent(), "node: get parent"); + ok(test_node_get_parent(), "node: get parent"); - ok(test_node_sorting(), "node: sort"); + ok(test_node_sorting(), "node: sort"); - endskip; + endskip; - todo(); + todo(); - ok(test_node_delete(), "node: delete"); + ok(test_node_delete(), "node: delete"); - endtodo; + endtodo; return 0; } diff --git a/src/tests/dnslib/dnslib_rdata_tests.c b/src/tests/dnslib/dnslib_rdata_tests.c index d9e0b43bf11f4bebd1cf076062d48971e9b3c845..34c803914689678da6a4998f65b79407d0684604 100644 --- a/src/tests/dnslib/dnslib_rdata_tests.c +++ b/src/tests/dnslib/dnslib_rdata_tests.c @@ -42,9 +42,9 @@ static int dnslib_rdata_tests_run(int argc, char *argv[]); /*! Exported unit API. */ unit_api dnslib_rdata_tests_api = { - "DNS library - rdata", //! Unit name - &dnslib_rdata_tests_count, //! Count scheduled tests - &dnslib_rdata_tests_run //! Run scheduled tests + "DNS library - rdata", //! Unit name + &dnslib_rdata_tests_count, //! Count scheduled tests + &dnslib_rdata_tests_run //! Run scheduled tests }; /*----------------------------------------------------------------------------*/ @@ -99,14 +99,15 @@ static int test_rdata_create() * \retval > 0 on success. * \retval 0 otherwise. */ -static int test_rdata_delete() { +static int test_rdata_delete() +{ // how to test this?? return 0; } /*----------------------------------------------------------------------------*/ -static void generate_rdata( uint8_t *data, int size ) +static void generate_rdata(uint8_t *data, int size) { for (int i = 0; i < size; ++i) { data[i] = rand() % 256; @@ -115,8 +116,8 @@ static void generate_rdata( uint8_t *data, int size ) /*----------------------------------------------------------------------------*/ -static int fill_rdata( uint8_t *data, int max_size, uint16_t rrtype, - dnslib_rdata_t *rdata ) +static int fill_rdata(uint8_t *data, int max_size, uint16_t rrtype, + dnslib_rdata_t *rdata) { assert(rdata != NULL); assert(data != NULL); @@ -128,11 +129,13 @@ static int fill_rdata( uint8_t *data, int max_size, uint16_t rrtype, //note("Filling RRType %u", rrtype); - dnslib_rrtype_descriptor_t *desc = dnslib_rrtype_descriptor_by_type(rrtype); + dnslib_rrtype_descriptor_t *desc = + dnslib_rrtype_descriptor_by_type(rrtype); uint item_count = desc->length; - dnslib_rdata_item_t *items = (dnslib_rdata_item_t *)malloc( - item_count * sizeof(dnslib_rdata_item_t)); + dnslib_rdata_item_t *items = + (dnslib_rdata_item_t *)malloc(item_count + * sizeof(dnslib_rdata_item_t)); for (int i = 0; i < item_count; ++i) { uint size = 0; @@ -146,10 +149,11 @@ static int fill_rdata( uint8_t *data, int max_size, uint16_t rrtype, case DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME: case DNSLIB_RDATA_WF_LITERAL_DNAME: dname = dnslib_dname_new_from_wire( - (uint8_t *)test_domains_ok[0].wire, - test_domains_ok[0].size, NULL); + (uint8_t *)test_domains_ok[0].wire, + test_domains_ok[0].size, NULL); assert(dname != NULL); - //note("Created domain name: %s", dnslib_dname_name(dname)); + /* note("Created domain name: %s", + dnslib_dname_name(dname)); */ //note("Domain name ptr: %p", dname); domain = 1; size = dnslib_dname_size(dname); @@ -180,7 +184,7 @@ static int fill_rdata( uint8_t *data, int max_size, uint16_t rrtype, case DNSLIB_RDATA_WF_BINARYWITHLENGTH: stored_size = 1; case DNSLIB_RDATA_WF_BINARY: - case DNSLIB_RDATA_WF_APL: // saved as binary + case DNSLIB_RDATA_WF_APL: // saved as binary case DNSLIB_RDATA_WF_IPSECGATEWAY: // saved as binary // size stored in the first byte size = rand() % DNSLIB_MAX_RDATA_ITEM_SIZE + 1; @@ -194,7 +198,8 @@ static int fill_rdata( uint8_t *data, int max_size, uint16_t rrtype, assert(size <= DNSLIB_MAX_RDATA_ITEM_SIZE); if (binary) { - // rewrite the actual byte in the data array with length octet + // Rewrite the actual byte in the data array + // with length octet. // (this is a bit ugly, but does the work ;-) *pos = size; ++size; @@ -207,10 +212,11 @@ static int fill_rdata( uint8_t *data, int max_size, uint16_t rrtype, if (domain) { items[i].dname = dname; wire_size += dnslib_dname_size(dname); -// note("Saved domain name ptr on index %d: %p",i, items[i].dname); +/* note("Saved domain name ptr on index %d: %p", + i, items[i].dname); */ } else { - free(dname); - // note("Saved raw data ptr on index %d: %p",i, pos); + free(dname); +// note("Saved raw data ptr on index %d: %p",i, pos); items[i].raw_data = pos; pos += size; wire_size += size; @@ -223,10 +229,10 @@ static int fill_rdata( uint8_t *data, int max_size, uint16_t rrtype, int res = dnslib_rdata_set_items(rdata, items, item_count); if (res != 0) { diag("dnslib_rdata_set_items() returned %d.", res); - free(items); + free(items); return -1; } else { - free(items); + free(items); return wire_size; } } @@ -238,8 +244,8 @@ static int fill_rdata( uint8_t *data, int max_size, uint16_t rrtype, * \return Number of errors encountered. Error is either if some RDATA item * is not set (i.e. NULL) or if it has other than the expected value. */ -static int check_rdata( const uint8_t *data, int max_size, uint16_t rrtype, - const dnslib_rdata_t *rdata ) +static int check_rdata(const uint8_t *data, int max_size, uint16_t rrtype, + const dnslib_rdata_t *rdata) { assert(rdata != NULL); assert(data != NULL); @@ -250,7 +256,8 @@ static int check_rdata( const uint8_t *data, int max_size, uint16_t rrtype, const uint8_t *pos = data; int used = 0; - dnslib_rrtype_descriptor_t *desc = dnslib_rrtype_descriptor_by_type(rrtype); + dnslib_rrtype_descriptor_t *desc = + dnslib_rrtype_descriptor_by_type(rrtype); uint item_count = desc->length; //note("check_rdata(), RRType: %u", rrtype); //note(" item count: %u", item_count); @@ -268,7 +275,8 @@ static int check_rdata( const uint8_t *data, int max_size, uint16_t rrtype, case DNSLIB_RDATA_WF_LITERAL_DNAME: //note(" domain name"); domain = 1; - size = dnslib_dname_size(dnslib_rdata_get_item(rdata, i)->dname); + size = dnslib_dname_size(dnslib_rdata_get_item( + rdata, i)->dname); break; case DNSLIB_RDATA_WF_BYTE: //note(" 1byte int"); @@ -291,7 +299,7 @@ static int check_rdata( const uint8_t *data, int max_size, uint16_t rrtype, size = 16; break; case DNSLIB_RDATA_WF_BINARY: - case DNSLIB_RDATA_WF_APL: // saved as binary + case DNSLIB_RDATA_WF_APL: // saved as binary case DNSLIB_RDATA_WF_IPSECGATEWAY: // saved as binary //note(" binary"); case DNSLIB_RDATA_WF_TEXT: @@ -312,19 +320,23 @@ static int check_rdata( const uint8_t *data, int max_size, uint16_t rrtype, //note(" item size: %u", size); if (domain) { - //note("Domain name ptr: %p", dnslib_rdata_get_item(rdata, i)->dname); + /*note("Domain name ptr: %p", + dnslib_rdata_get_item(rdata, i)->dname);*/ // check dname size if (*pos != size) { - diag("Domain name stored in %d-th RDATA has wrong size: %d" - " (should be %d)", size, *pos); + diag("Domain name stored in %d-th" + "RDATA has wrong size: %d" + " (should be %d)", size, *pos); ++errors; } else if (strncmp((char *)dnslib_dname_name( - dnslib_rdata_get_item(rdata, i)->dname), - (char *)(pos + 1), *pos) != 0) { - diag("Domain name stored in %d-th RDATA item is wrong: %s (" - "should be %.*s)", i, - dnslib_dname_name(dnslib_rdata_get_item(rdata, i)->dname), - *pos, (char *)(pos + 1)); + dnslib_rdata_get_item(rdata, i)->dname), + (char *)(pos + 1), *pos) != 0) { + diag("Domain name stored in %d-th" + "RDATA item is wrong: %s (" + "should be %.*s)", i, + dnslib_dname_name(dnslib_rdata_get_item( + rdata, i)->dname), + *pos, (char *)(pos + 1)); ++errors; } @@ -333,15 +345,20 @@ static int check_rdata( const uint8_t *data, int max_size, uint16_t rrtype, continue; } - if (binary - && size != dnslib_rdata_get_item(rdata, i)->raw_data[0] + 1) { - diag("Size of stored binary data is wrong: %u (should be %u)", - dnslib_rdata_get_item(rdata, i)->raw_data[0] + 1, size); + if (binary && + size != dnslib_rdata_get_item(rdata, i)->raw_data[0] + 1) { + diag("Size of stored binary data is wrong:" + " %u (should be %u)", + dnslib_rdata_get_item(rdata, i)->raw_data[0] + 1, + size); ++errors; } - if (strncmp((char *)(&dnslib_rdata_get_item(rdata, i)->raw_data[0]), - (char *)pos, size) != 0) {dnslib_rrtype_descriptor_t *desc = dnslib_rrtype_descriptor_by_type(rrtype); + if (strncmp((char *) + (&dnslib_rdata_get_item(rdata, i)->raw_data[0]), + (char *)pos, size) != 0) { +/* dnslib_rrtype_descriptor_t *desc = + dnslib_rrtype_descriptor_by_type(rrtype); */ diag("Data stored in %d-th RDATA item are wrong.", i); ++errors; @@ -355,8 +372,8 @@ static int check_rdata( const uint8_t *data, int max_size, uint16_t rrtype, /*----------------------------------------------------------------------------*/ -int convert_to_wire( const uint8_t *data, int max_size, uint16_t rrtype, - uint8_t *data_wire ) +int convert_to_wire(const uint8_t *data, int max_size, uint16_t rrtype, + uint8_t *data_wire) { //note("Converting type %u", rrtype); @@ -364,7 +381,8 @@ int convert_to_wire( const uint8_t *data, int max_size, uint16_t rrtype, const uint8_t *pos = data; uint8_t *pos_wire = data_wire; - dnslib_rrtype_descriptor_t *desc = dnslib_rrtype_descriptor_by_type(rrtype); + dnslib_rrtype_descriptor_t *desc = + dnslib_rrtype_descriptor_by_type(rrtype); uint item_count = desc->length; for (int i = 0; i < item_count; ++i) { @@ -379,8 +397,8 @@ int convert_to_wire( const uint8_t *data, int max_size, uint16_t rrtype, from = pos + 1; to_copy = *pos; pos += *pos + 1; -// note("Domain name in wire format (size %u): %s", to_copy, -// (char *)from); +/* note("Domain name in wire format (size %u): %s", + to_copy, (char *)from); */ break; case DNSLIB_RDATA_WF_BYTE: //note(" 1byte int"); @@ -413,7 +431,7 @@ int convert_to_wire( const uint8_t *data, int max_size, uint16_t rrtype, pos += 16; break; case DNSLIB_RDATA_WF_BINARY: - case DNSLIB_RDATA_WF_APL: // saved as binary + case DNSLIB_RDATA_WF_APL: // saved as binary case DNSLIB_RDATA_WF_IPSECGATEWAY: // saved as binary //note(" binary"); from = pos + 1; @@ -461,8 +479,8 @@ static int test_rdata_set_item() int ret = dnslib_rdata_set_item(rdata, 0, item); if (ret == 0) { - diag("dnslib_rdata_set_item() called on empty RDATA returned %d instead" - "of error (-1).", ret); + diag("dnslib_rdata_set_item() called on empty RDATA" + "returned %d instead of error (-1).", ret); dnslib_rdata_free(&rdata); return 0; } @@ -477,19 +495,21 @@ static int test_rdata_set_item() return 0; } - uint8_t pos = rand() % dnslib_rrtype_descriptor_by_type(rrtype)->length; + uint8_t pos = + rand() % dnslib_rrtype_descriptor_by_type(rrtype)->length; ret = dnslib_rdata_set_item(rdata, pos, item); if (ret != 0) { - diag("dnslib_rdata_set_item() called on filled RDATA returned %d" - " instead of 0.", ret); + diag("dnslib_rdata_set_item() called on filled" + " RDATA returned %d instead of 0.", ret); dnslib_rdata_free(&rdata); return 0; } if (dnslib_rdata_get_item(rdata, pos)->raw_data != RDATA_ITEM_PTR) { diag("RDATA item on position %d is wrong: %p (should be %p).", - pos, dnslib_rdata_get_item(rdata, pos)->raw_data, RDATA_ITEM_PTR); + pos, dnslib_rdata_get_item(rdata, pos)->raw_data, + RDATA_ITEM_PTR); dnslib_rdata_free(&rdata); return 0; } @@ -517,21 +537,22 @@ static int test_rdata_set_items() // check error return values if (dnslib_rdata_set_items(rdata, NULL, 0) != 1) { - diag("Return value of dnslib_rdata_set_items() when rdata == NULL is" - "wrong"); + diag("Return value of dnslib_rdata_set_items()" + "when rdata == NULL is wrong"); return 0; } else { rdata = dnslib_rdata_new(); assert(rdata != NULL); if (dnslib_rdata_set_items(rdata, NULL, 0) != 1) { - diag("Return value of dnslib_rdata_set_items() when items == NULL" - "is wrong"); + diag("Return value of dnslib_rdata_set_items()" + " when items == NULL is wrong"); dnslib_rdata_free(&rdata); return 0; } else if (dnslib_rdata_set_items(rdata, item, 0) != 1) { - diag("Return value of dnslib_rdata_set_items() when count == 0" - "is wrong"); + diag("Return value of dnslib_rdata_set_items()" + " when count == 0" + "is wrong"); dnslib_rdata_free(&rdata); return 0; } @@ -545,21 +566,26 @@ static int test_rdata_set_items() for (int i = 0; i <= DNSLIB_RRTYPE_LAST; ++i) { rdata = dnslib_rdata_new(); - if (fill_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, rdata) < 0) { + if (fill_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, rdata) + < 0) { ++errors; } - errors += check_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, rdata); - - dnslib_rrtype_descriptor_t *desc = dnslib_rrtype_descriptor_by_type(i); - - for (int x = 0; x < desc->length; x++) { - if (desc->wireformat[x] == DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME || - desc->wireformat[x] == DNSLIB_RDATA_WF_COMPRESSED_DNAME || - desc->wireformat[x] == DNSLIB_RDATA_WF_LITERAL_DNAME) { -// printf("freeing %p\n", rdata->items[x].dname); - dnslib_dname_free(&(rdata->items[x].dname)); - } - } + errors += check_rdata(data, + DNSLIB_MAX_RDATA_WIRE_SIZE, i, rdata); + + dnslib_rrtype_descriptor_t *desc = dnslib_rrtype_descriptor_by_type(i); + + for (int x = 0; x < desc->length; x++) { + if (desc->wireformat[x] == + DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME || + desc->wireformat[x] == + DNSLIB_RDATA_WF_COMPRESSED_DNAME || + desc->wireformat[x] == + DNSLIB_RDATA_WF_LITERAL_DNAME) { +// printf("freeing %p\n", rdata->items[x].dname); + dnslib_dname_free(&(rdata->items[x].dname)); + } + } dnslib_rdata_free(&rdata); } @@ -579,27 +605,28 @@ static int test_rdata_get_item() const dnslib_rdata_t *rdata = &TEST_RDATA; if (dnslib_rdata_get_item(rdata, TEST_RDATA.count) != NULL) { - diag("dnslib_rdata_get_item() called with invalid position did not " - "return NULL"); + diag("dnslib_rdata_get_item() called with" + "invalid position did not return NULL"); return 0; } int errors = 0; - if ((dnslib_rdata_get_item(rdata, 0)->dname) != TEST_RDATA.items[0].dname) { + if ((dnslib_rdata_get_item(rdata, 0)->dname) != + TEST_RDATA.items[0].dname) { diag("RDATA item on position 0 is wrong: %p (should be %p)", - dnslib_rdata_get_item(rdata, 0), TEST_RDATA.items[0]); + dnslib_rdata_get_item(rdata, 0), TEST_RDATA.items[0]); ++errors; } if ((dnslib_rdata_get_item(rdata, 1)->raw_data) - != TEST_RDATA.items[1].raw_data) { + != TEST_RDATA.items[1].raw_data) { diag("RDATA item on position 0 is wrong: %p (should be %p)", - dnslib_rdata_get_item(rdata, 1), TEST_RDATA.items[1]); + dnslib_rdata_get_item(rdata, 1), TEST_RDATA.items[1]); ++errors; } if ((dnslib_rdata_get_item(rdata, 2)->raw_data) - != TEST_RDATA.items[2].raw_data) { + != TEST_RDATA.items[2].raw_data) { diag("RDATA item on position 0 is wrong: %p (should be %p)", - dnslib_rdata_get_item(rdata, 2), TEST_RDATA.items[2]); + dnslib_rdata_get_item(rdata, 2), TEST_RDATA.items[2]); ++errors; } @@ -620,30 +647,36 @@ static int test_rdata_wire_size() for (int i = 0; i <= DNSLIB_RRTYPE_LAST; ++i) { rdata = dnslib_rdata_new(); - int size = fill_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, rdata); + int size = + fill_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, rdata); if (size < 0) { ++errors; } else { int counted_size = dnslib_rdata_wire_size(rdata, - dnslib_rrtype_descriptor_by_type(i)->wireformat); + dnslib_rrtype_descriptor_by_type(i)->wireformat); if (size != counted_size) { - diag("Wrong wire size computed (type %d): %d (should be %d)", - i, counted_size, size); + diag("Wrong wire size computed (type %d):" + " %d (should be %d)", + i, counted_size, size); ++errors; } } - dnslib_rrtype_descriptor_t *desc = dnslib_rrtype_descriptor_by_type(i); - - for (int x = 0; x < desc->length; x++) { - if (desc->wireformat[x] == DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME || - desc->wireformat[x] == DNSLIB_RDATA_WF_COMPRESSED_DNAME || - desc->wireformat[x] == DNSLIB_RDATA_WF_LITERAL_DNAME) { -// printf("freeing %p\n", rdata->items[x].dname); - dnslib_dname_free(&(rdata->items[x].dname)); - } - } + dnslib_rrtype_descriptor_t *desc = + dnslib_rrtype_descriptor_by_type(i); + + for (int x = 0; x < desc->length; x++) { + if (desc->wireformat[x] == + DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME || + desc->wireformat[x] == + DNSLIB_RDATA_WF_COMPRESSED_DNAME || + desc->wireformat[x] == + DNSLIB_RDATA_WF_LITERAL_DNAME) { +// printf("freeing %p\n", rdata->items[x].dname); + dnslib_dname_free(&(rdata->items[x].dname)); + } + } dnslib_rdata_free(&rdata); } @@ -666,45 +699,55 @@ static int test_rdata_to_wire() for (int i = 0; i <= DNSLIB_RRTYPE_LAST; ++i) { rdata = dnslib_rdata_new(); - int size = fill_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, rdata); + int size = + fill_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, rdata); int size_expected = - convert_to_wire(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, data_wire); + convert_to_wire(data, DNSLIB_MAX_RDATA_WIRE_SIZE, i, + data_wire); if (size < 0) { ++errors; } else { if (size != size_expected) { - diag("Wire format size (%u) not as expected (%u)", - size, size_expected); + diag("Wire format size (%u) not" + " as expected (%u)", + size, size_expected); ++errors; } else { if (dnslib_rdata_to_wire(rdata, - dnslib_rrtype_descriptor_by_type(i)->wireformat, rdata_wire, - DNSLIB_MAX_RDATA_WIRE_SIZE) != 0) { - diag("Error while converting RDATA to wire format."); + dnslib_rrtype_descriptor_by_type(i)-> + wireformat, rdata_wire, + DNSLIB_MAX_RDATA_WIRE_SIZE) != 0) { + diag("Error while converting RDATA" + " to wire format."); ++errors; } else { - if (strncmp((char *)data_wire, (char *)rdata_wire, size) - != 0) { - diag("RDATA converted to wire format does not match" - " the expected value"); + if (strncmp((char *)data_wire, + (char *)rdata_wire, size) + != 0) { + diag("RDATA converted to wire" + "format does not match" + " the expected value"); ++errors; } } } } - dnslib_rrtype_descriptor_t *desc = dnslib_rrtype_descriptor_by_type(i); - - for (int x = 0; x < desc->length; x++) { - if (desc->wireformat[x] == DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME || - desc->wireformat[x] == DNSLIB_RDATA_WF_COMPRESSED_DNAME || - desc->wireformat[x] == DNSLIB_RDATA_WF_LITERAL_DNAME) { -// printf("freeing %p\n", rdata->items[x].dname); - dnslib_dname_free(&(rdata->items[x].dname)); - } - } + dnslib_rrtype_descriptor_t *desc = + dnslib_rrtype_descriptor_by_type(i); + + for (int x = 0; x < desc->length; x++) { + if (desc->wireformat[x] == + DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME || + desc->wireformat[x] == + DNSLIB_RDATA_WF_COMPRESSED_DNAME || + desc->wireformat[x] == + DNSLIB_RDATA_WF_LITERAL_DNAME) { + dnslib_dname_free(&(rdata->items[x].dname)); + } + } dnslib_rdata_free(&rdata); } @@ -720,7 +763,7 @@ static const int DNSLIB_RDATA_TEST_COUNT = 7; */ static int dnslib_rdata_tests_count(int argc, char *argv[]) { - return DNSLIB_RDATA_TEST_COUNT; + return DNSLIB_RDATA_TEST_COUNT; } /*! Run all scheduled tests for given parameters. diff --git a/src/tests/dnslib/dnslib_rrset_tests.c b/src/tests/dnslib/dnslib_rrset_tests.c index 9940a6a069aa9686c721d66a7b29ab1502b96774..17a122dc95f00a5c10726f5b606bcfe7ed48f4a3 100644 --- a/src/tests/dnslib/dnslib_rrset_tests.c +++ b/src/tests/dnslib/dnslib_rrset_tests.c @@ -21,9 +21,9 @@ static int dnslib_rrset_tests_run(int argc, char *argv[]); /*! Exported unit API. */ unit_api dnslib_rrset_tests_api = { - "DNS library - rrset", //! Unit name - &dnslib_rrset_tests_count, //! Count scheduled tests - &dnslib_rrset_tests_run //! Run scheduled tests + "DNS library - rrset", //! Unit name + &dnslib_rrset_tests_count, //! Count scheduled tests + &dnslib_rrset_tests_run //! Run scheduled tests }; /*----------------------------------------------------------------------------*/ @@ -47,85 +47,99 @@ struct test_rrset { uint rrsig_count; }; -static const char *signature_strings[TEST_RRSIGS] = {"signature 1", "signature 2", "signature 3"}; +static const char *signature_strings[TEST_RRSIGS] = +{"signature 1", "signature 2", "signature 3"}; static struct test_rrset test_rrsets[TEST_RRSETS] = { - { "example.com.", - 2, - 1, - 3600, - NULL, - NULL, - NULL, - 0 }, - { "example2.com.", - 2, - 1, - 3600, - NULL, - NULL, - NULL, - 0 }, - { "example3.com.", - 2, - 1, - 3600, - NULL, - NULL, - NULL, - 0 } + { + "example.com.", + 2, + 1, + 3600, + NULL, + NULL, + NULL, + 0 + }, + { + "example2.com.", + 2, + 1, + 3600, + NULL, + NULL, + NULL, + 0 + }, + { + "example3.com.", + 2, + 1, + 3600, + NULL, + NULL, + NULL, + 0 + } }; static const struct test_rrset test_rrsigs[TEST_RRSIGS] = { - { "example.com.", - 46, - 1, - 3600, - NULL, - NULL, - NULL, - 1 }, - { "example2.com.", - 46, - 1, - 3600, - NULL, - NULL, - NULL, - 1 }, - { "example3.com.", - 46, - 1, - 3600, - NULL, - NULL, - NULL, - 1 } + { + "example.com.", + 46, + 1, + 3600, + NULL, + NULL, + NULL, + 1 + }, + { + "example2.com.", + 46, + 1, + 3600, + NULL, + NULL, + NULL, + 1 + }, + { + "example3.com.", + 46, + 1, + 3600, + NULL, + NULL, + NULL, + 1 + } }; /* fills test_rrsets with random rdata */ static void create_rdata() { - dnslib_rdata_t *r; - for (int i = 0; i < TEST_RRSETS; i++) { - r = dnslib_rdata_new(); - dnslib_rdata_item_t item; - item.raw_data = RDATA_ITEM_PTR; - - dnslib_rdata_set_item(r, 0, item); - - uint8_t data[DNSLIB_MAX_RDATA_WIRE_SIZE]; - generate_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE); - - // from dnslib_rdata_tests.c - fill_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, test_rrsets[i].type, r); - test_rrsets[i].rdata = r; - } + dnslib_rdata_t *r; + for (int i = 0; i < TEST_RRSETS; i++) { + r = dnslib_rdata_new(); + dnslib_rdata_item_t item; + item.raw_data = RDATA_ITEM_PTR; + + dnslib_rdata_set_item(r, 0, item); + + uint8_t data[DNSLIB_MAX_RDATA_WIRE_SIZE]; + generate_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE); + + // from dnslib_rdata_tests.c + fill_rdata(data, DNSLIB_MAX_RDATA_WIRE_SIZE, + test_rrsets[i].type, r); + test_rrsets[i].rdata = r; + } } -static int check_rrset( const dnslib_rrset_t *rrset, int i, - int check_rdata, int check_rrsigs ) +static int check_rrset(const dnslib_rrset_t *rrset, int i, + int check_rdata, int check_rrsigs) { int errors = 0; @@ -137,26 +151,26 @@ static int check_rrset( const dnslib_rrset_t *rrset, int i, char *owner = dnslib_dname_to_str(rrset->owner); if (strcmp(owner, test_rrsets[i].owner) != 0) { diag("OWNER domain name wrong: '%s' (should be '%s')", - owner, test_rrsets[i].owner); + owner, test_rrsets[i].owner); ++errors; } free(owner); if (rrset->type != test_rrsets[i].type) { diag("TYPE wrong: %u (should be: %u)", rrset->type, - test_rrsets[i].type); + test_rrsets[i].type); ++errors; } if (rrset->rclass != test_rrsets[i].rclass) { diag("CLASS wrong: %u (should be: %u)", rrset->rclass, - test_rrsets[i].rclass); + test_rrsets[i].rclass); ++errors; } if (rrset->ttl != test_rrsets[i].ttl) { diag("TTL wrong: %u (should be: %u)", rrset->ttl, - test_rrsets[i].ttl); + test_rrsets[i].ttl); ++errors; } @@ -168,8 +182,9 @@ static int check_rrset( const dnslib_rrset_t *rrset, int i, ++errors; } if (rdata != NULL) { - while (rdata->next != NULL && rdata->next != rrset->rdata) { - rdata = rdata->next; + while (rdata->next != NULL && + rdata->next != rrset->rdata) { + rdata = rdata->next; } if (rdata->next == NULL) { diag("The list of RDATAs is not cyclical!"); @@ -177,25 +192,27 @@ static int check_rrset( const dnslib_rrset_t *rrset, int i, } else { assert(rdata == rrset->rdata); } - } - } - - /* will work only with nul terminated strings, consider changing to more - * versatile implementation */ + } + } + + /* will work only with nul terminated strings, + * consider changing to more versatile implementation */ if (check_rrsigs) { - const dnslib_rrset_t *rrsigs; - - rrsigs = dnslib_rrset_rrsigs(rrset); - if (strcmp((const char *)rrsigs->rdata->items[0].raw_data, - signature_strings[i])) { - diag("Signatures are not equal to those set when creating." - "Comparing %s with %s", - rrsigs->rdata->items[0].raw_data, signature_strings[i]); - errors++; - } - } + const dnslib_rrset_t *rrsigs; + + rrsigs = dnslib_rrset_rrsigs(rrset); + if (strcmp((const char *)rrsigs->rdata->items[0].raw_data, + signature_strings[i])) { + diag("Signatures are not equal" + "to those set when creating." + "Comparing %s with %s", + rrsigs->rdata->items[0].raw_data, + signature_strings[i]); + errors++; + } + } return errors; } @@ -209,14 +226,19 @@ static int test_rrset_create() int errors = 0; for (int i = 0; i < TEST_RRSETS; ++i) { - dnslib_dname_t *owner = dnslib_dname_new_from_str(test_rrsets[i].owner, - strlen(test_rrsets[i].owner), NODE_ADDRESS); + dnslib_dname_t *owner = dnslib_dname_new_from_str( + test_rrsets[i].owner, + strlen( + test_rrsets[i].owner), + NODE_ADDRESS); if (owner == NULL) { diag("Error creating owner domain name!"); return 0; } - dnslib_rrset_t *rrset = dnslib_rrset_new(owner, test_rrsets[i].type, - test_rrsets[i].rclass, test_rrsets[i].ttl); + dnslib_rrset_t *rrset = dnslib_rrset_new(owner, + test_rrsets[i].type, + test_rrsets[i].rclass, + test_rrsets[i].ttl); errors += check_rrset(rrset, i, 0, 0); @@ -243,126 +265,134 @@ static int test_rrset_delete() static int test_rrset_rdata() { - /* rdata add */ - int errors = 0; - for (int i = 0; i < TEST_RRSETS; i++) { - dnslib_dname_t *owner = dnslib_dname_new_from_str(test_rrsets[i].owner, - strlen(test_rrsets[i].owner), NODE_ADDRESS); - if (owner == NULL) { - diag("Error creating owner domain name!"); - return 0; - } - dnslib_rrset_t *rrset = dnslib_rrset_new(owner, test_rrsets[i].type, - test_rrsets[i].rclass, test_rrsets[i].ttl); - - dnslib_rrset_add_rdata(rrset, test_rrsets[i].rdata); - - errors += check_rrset(rrset, i, 1, 0); - - dnslib_rrset_free(&rrset); - dnslib_dname_free(&owner); - } - - //test whether adding works properly = keeps order of added elements - - dnslib_rrset_t *rrset = dnslib_rrset_new(NULL, 0, 0, 0); - - dnslib_rdata_t *r; - - dnslib_rdata_item_t *item; - - char *test_strings[10] = - { "-2", "9", "2", "10", "1", "5", "8", "4", "6", "7" }; - - for (int i = 0; i < 10; i++) { - r = dnslib_rdata_new(); - item=malloc(sizeof(dnslib_rdata_item_t)); - item->raw_data = (uint8_t*)test_strings[i]; - //following statement creates a copy - dnslib_rdata_set_items(r, item, 1); - dnslib_rrset_add_rdata(rrset, r); - free(item); - } - - dnslib_rdata_t *tmp = rrset->rdata; - - int i = 0; - while (tmp->next!=rrset->rdata && !errors) - { + /* rdata add */ + int errors = 0; + for (int i = 0; i < TEST_RRSETS; i++) { + dnslib_dname_t *owner = dnslib_dname_new_from_str( + test_rrsets[i].owner, + strlen( + test_rrsets[i].owner), + NODE_ADDRESS); + if (owner == NULL) { + diag("Error creating owner domain name!"); + return 0; + } + dnslib_rrset_t *rrset = dnslib_rrset_new(owner, + test_rrsets[i].type, + test_rrsets[i].rclass, + test_rrsets[i].ttl); + + dnslib_rrset_add_rdata(rrset, test_rrsets[i].rdata); + + errors += check_rrset(rrset, i, 1, 0); + + dnslib_rrset_free(&rrset); + dnslib_dname_free(&owner); + } + + //test whether adding works properly = keeps order of added elements + + dnslib_rrset_t *rrset = dnslib_rrset_new(NULL, 0, 0, 0); + + dnslib_rdata_t *r; + + dnslib_rdata_item_t *item; + + char *test_strings[10] = + { "-2", "9", "2", "10", "1", "5", "8", "4", "6", "7" }; + + for (int i = 0; i < 10; i++) { + r = dnslib_rdata_new(); + item = malloc(sizeof(dnslib_rdata_item_t)); + item->raw_data = (uint8_t *)test_strings[i]; + //following statement creates a copy + dnslib_rdata_set_items(r, item, 1); + dnslib_rrset_add_rdata(rrset, r); + free(item); + } + + dnslib_rdata_t *tmp = rrset->rdata; + + int i = 0; + while (tmp->next != rrset->rdata && !errors) { if (strcmp(test_strings[i], (char *)tmp->items[0].raw_data)) { - diag("Adding RDATA error!, is %s should be %s", - tmp->items[0].raw_data, test_strings[i]); - errors++; - } - i++; - tmp = tmp->next; - } + diag("Adding RDATA error!, is %s should be %s", + tmp->items[0].raw_data, test_strings[i]); + errors++; + } + i++; + tmp = tmp->next; + } - tmp = rrset->rdata; + tmp = rrset->rdata; - dnslib_rdata_t *next; + dnslib_rdata_t *next; - while (tmp->next != rrset->rdata) { - next = tmp->next; - dnslib_rdata_free(&tmp); - tmp = next; - } + while (tmp->next != rrset->rdata) { + next = tmp->next; + dnslib_rdata_free(&tmp); + tmp = next; + } - dnslib_rdata_free(&tmp); + dnslib_rdata_free(&tmp); - dnslib_rrset_free(&rrset); + dnslib_rrset_free(&rrset); - return (errors == 0); + return (errors == 0); } static int test_rrset_rrsigs() { - int errors = 0; - - dnslib_rdata_item_t *item; - - dnslib_rdata_t *tmp; - - dnslib_dname_t *owner; - - dnslib_rrset_t *rrset; - - for (int i = 0; i < TEST_RRSETS; i++) { - owner = dnslib_dname_new_from_str(test_rrsets[i].owner, - strlen(test_rrsets[i].owner), NODE_ADDRESS); - if (owner == NULL) { - diag("Error creating owner domain name!"); - return 0; - } - - rrset = dnslib_rrset_new(owner, test_rrsets[i].type, - test_rrsets[i].rclass, test_rrsets[i].ttl); - - dnslib_rrset_add_rdata(rrset, test_rrsets[i].rdata); - - //owners are the same - dnslib_rrset_t *rrsig = dnslib_rrset_new(owner, test_rrsigs[i].type, - test_rrsigs[i].rclass, test_rrsigs[i].ttl); - - tmp = dnslib_rdata_new(); - item=malloc(sizeof(dnslib_rdata_item_t)); - /* signature is just a string, should be sufficient for testing */ - item->raw_data = (uint8_t*)signature_strings[i]; - dnslib_rdata_set_items(tmp, item, 1); - dnslib_rrset_add_rdata(rrsig, tmp); - - if (dnslib_rrset_set_rrsigs(rrset, rrsig, rrsig->rdata, 1)!=0) { - diag("Could not set rrsig"); - errors++; - } - errors += check_rrset(rrset, i, 0, 1); - dnslib_dname_free(&owner); - dnslib_rrset_free(&rrset); - free(item); - dnslib_rdata_free(&tmp); - dnslib_rrset_free(&rrsig); - } - return (errors == 0); + int errors = 0; + + dnslib_rdata_item_t *item; + + dnslib_rdata_t *tmp; + + dnslib_dname_t *owner; + + dnslib_rrset_t *rrset; + + for (int i = 0; i < TEST_RRSETS; i++) { + owner = dnslib_dname_new_from_str(test_rrsets[i].owner, + strlen(test_rrsets[i].owner), NODE_ADDRESS); + if (owner == NULL) { + diag("Error creating owner domain name!"); + return 0; + } + + rrset = dnslib_rrset_new(owner, test_rrsets[i].type, + test_rrsets[i].rclass, test_rrsets[i].ttl); + + dnslib_rrset_add_rdata(rrset, test_rrsets[i].rdata); + + //owners are the same + dnslib_rrset_t *rrsig = dnslib_rrset_new(owner, + test_rrsigs[i].type, + test_rrsigs[i].rclass, + test_rrsigs[i].ttl); + + tmp = dnslib_rdata_new(); + item = malloc(sizeof(dnslib_rdata_item_t)); + /* signature is just a string, + * should be sufficient for testing */ + item->raw_data = (uint8_t *)signature_strings[i]; + dnslib_rdata_set_items(tmp, item, 1); + dnslib_rrset_add_rdata(rrsig, tmp); + + if (dnslib_rrset_set_rrsigs(rrset, rrsig, + rrsig->rdata, 1) != 0) { + diag("Could not set rrsig"); + errors++; + } + errors += check_rrset(rrset, i, 0, 1); + dnslib_dname_free(&owner); + dnslib_rrset_free(&rrset); + free(item); + dnslib_rdata_free(&tmp); + dnslib_rrset_free(&rrsig); + } + return (errors == 0); } /*----------------------------------------------------------------------------*/ @@ -374,7 +404,7 @@ static const int DNSLIB_RRSET_TEST_COUNT = 4; */ static int dnslib_rrset_tests_count(int argc, char *argv[]) { - return DNSLIB_RRSET_TEST_COUNT; + return DNSLIB_RRSET_TEST_COUNT; } /*! Run all scheduled tests for given parameters. @@ -383,7 +413,7 @@ static int dnslib_rrset_tests_run(int argc, char *argv[]) { int res_create = 0; - create_rdata(); + create_rdata(); res_create = test_rrset_create(); ok(res_create, "rrset: create"); @@ -402,18 +432,22 @@ static int dnslib_rrset_tests_run(int argc, char *argv[]) endskip; /* !res_create */ - dnslib_rrtype_descriptor_t *desc; - - for (int i = 0; i < TEST_RRSETS; i++) { - desc = dnslib_rrtype_descriptor_by_type(test_rrsets[i].type); - for (int x = 0; x < test_rrsets[i].rdata->count; x++) { - if (desc->wireformat[x] == DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME || - desc->wireformat[x] == DNSLIB_RDATA_WF_COMPRESSED_DNAME || - desc->wireformat[x] == DNSLIB_RDATA_WF_LITERAL_DNAME) { - dnslib_dname_free(&(test_rrsets[i].rdata->items[x].dname)); - } - } - dnslib_rdata_free(&test_rrsets[i].rdata); - } + dnslib_rrtype_descriptor_t *desc; + + for (int i = 0; i < TEST_RRSETS; i++) { + desc = dnslib_rrtype_descriptor_by_type(test_rrsets[i].type); + for (int x = 0; x < test_rrsets[i].rdata->count; x++) { + if ( + desc->wireformat[x] == + DNSLIB_RDATA_WF_UNCOMPRESSED_DNAME || + desc->wireformat[x] == + DNSLIB_RDATA_WF_COMPRESSED_DNAME || + desc->wireformat[x] == DNSLIB_RDATA_WF_LITERAL_DNAME) { + dnslib_dname_free( + &(test_rrsets[i].rdata->items[x].dname)); + } + } + dnslib_rdata_free(&test_rrsets[i].rdata); + } return 0; }