From ce8f00eaaac555aadea68294b716b57e7cb1b998 Mon Sep 17 00:00:00 2001 From: Intel Date: Tue, 12 Mar 2013 12:03:00 +0100 Subject: [PATCH] app: various changes Signed-off-by: Intel --- app/test-pmd/cmdline.c | 2 +- app/test/autotest_data.py | 5 +++- app/test/test_cmdline_string.c | 5 +++- app/test/test_eal_flags.c | 8 ++++++- app/test/test_lpm.c | 2 +- app/test/test_tailq.c | 42 ++++++++++++++++++++++++++++++++++ 6 files changed, 59 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 8eb15bd1b2..880d4af70f 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -1532,7 +1532,7 @@ cmd_vlan_offload_parsed(void *parsed_result, str[i]='\0'; tmp = strtoul(str, NULL, 0); /* If port_id greater that what portid_t can represent, return */ - if(tmp > 255) + if(tmp >= RTE_MAX_ETHPORTS) return; port_id = (portid_t)tmp; diff --git a/app/test/autotest_data.py b/app/test/autotest_data.py index 7c5b96449d..527044767e 100644 --- a/app/test/autotest_data.py +++ b/app/test/autotest_data.py @@ -39,7 +39,10 @@ from autotest_test_funcs import * # quick and dirty function to find out number of sockets def num_sockets(): - return len(glob("/sys/devices/system/node/node*")) + result = len(glob("/sys/devices/system/node/node*")) + if result == 0: + return 1 + return result # multiply given number for all sockets # e.g. 32 becomes 32,32 or 32,32,32,32 etc. diff --git a/app/test/test_cmdline_string.c b/app/test/test_cmdline_string.c index 773d69315b..32cea79a35 100644 --- a/app/test/test_cmdline_string.c +++ b/app/test/test_cmdline_string.c @@ -66,7 +66,10 @@ struct string_elt_str string_elt_strs[] = { {"one#two\nwith\nnewlines#three", "two\nwith\nnewlines", 1}, }; - +#if CMDLINE_TEST_BUFSIZE < STR_TOKEN_SIZE +#undef CMDLINE_TEST_BUFSIZE +#define CMDLINE_TEST_BUFSIZE STR_TOKEN_SIZE +#endif struct string_nb_str { const char * str; /* parsed string */ diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c index c3754d9391..cdbe87a4b7 100644 --- a/app/test/test_eal_flags.c +++ b/app/test/test_eal_flags.c @@ -115,7 +115,8 @@ process_hugefiles(const char * prefix, enum hugepage_action action) const int prefix_len = rte_snprintf(hugefile_prefix, sizeof(hugefile_prefix), "%smap_", prefix); - if (prefix_len <= 0 || prefix_len >= (int)sizeof(hugefile_prefix)) { + if (prefix_len <= 0 || prefix_len >= (int)sizeof(hugefile_prefix) + || prefix_len >= (int)sizeof(dirent->d_name)) { printf("Error creating hugefile filename prefix\n"); return -1; } @@ -229,6 +230,11 @@ get_number_of_sockets(void) /* check if directory exists */ if ((dir = opendir(nodedir)) == NULL) { + /* if errno==ENOENT this means we don't have NUMA support */ + if (errno == ENOENT) { + printf("No NUMA nodes detected: assuming 1 available socket\n"); + return 1; + } printf("Error opening %s: %s\n", nodedir, strerror(errno)); return -1; } diff --git a/app/test/test_lpm.c b/app/test/test_lpm.c index 158d8ace1f..ad71730fd6 100644 --- a/app/test/test_lpm.c +++ b/app/test/test_lpm.c @@ -938,9 +938,9 @@ test14(void) lpm = rte_lpm_create(__func__, SOCKET_ID_ANY, 256 * 32, 0); TEST_LPM_ASSERT(lpm != NULL); - ip = IPv4(0, 0, 0, 0); depth = 32; next_hop_add = 100; + ip = IPv4(0, 0, 0, 0); /* Add 256 rules that require a tbl8 extension */ for (; ip <= IPv4(0, 0, 255, 0); ip += 256) { diff --git a/app/test/test_tailq.c b/app/test/test_tailq.c index 24fbd29cf4..b303033272 100644 --- a/app/test/test_tailq.c +++ b/app/test/test_tailq.c @@ -114,11 +114,53 @@ test_tailq_lookup(void) return 0; } +/* test for deprecated functions - mainly for coverage */ +static int +test_tailq_deprecated(void) +{ + struct rte_dummy_head *d_head; + + /* since TAILQ_RESERVE is not able to create new tailqs, + * we should find an existing one (IOW, RTE_TAILQ_RESERVE behaves identical + * to RTE_TAILQ_LOOKUP). + * + * PCI_RESOURCE_LIST tailq is guaranteed to + * be present in any DPDK app. */ + d_head = RTE_TAILQ_RESERVE("PCI_RESOURCE_LIST", rte_dummy_head); + if (d_head == NULL) + do_return("Error finding PCI_RESOURCE_LIST\n"); + + d_head = RTE_TAILQ_LOOKUP("PCI_RESOURCE_LIST", rte_dummy_head); + if (d_head == NULL) + do_return("Error finding PCI_RESOURCE_LIST\n"); + + /* try doing that with non-existent names */ + d_head = RTE_TAILQ_RESERVE("random name", rte_dummy_head); + if (d_head != NULL) + do_return("Non-existent tailq found!\n"); + + d_head = RTE_TAILQ_LOOKUP("random name", rte_dummy_head); + if (d_head != NULL) + do_return("Non-existent tailq found!\n"); + + /* try doing the same with NULL names */ + d_head = RTE_TAILQ_RESERVE(NULL, rte_dummy_head); + if (d_head != NULL) + do_return("NULL tailq found!\n"); + + d_head = RTE_TAILQ_LOOKUP(NULL, rte_dummy_head); + if (d_head != NULL) + do_return("NULL tailq found!\n"); + + return 0; +} + int test_tailq(void) { int ret = 0; ret |= test_tailq_create(); ret |= test_tailq_lookup(); + ret |= test_tailq_deprecated(); return ret; } -- 2.20.1