From: Feifei Wang <feifei.wang2@arm.com> To: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>, Konstantin Ananyev <konstantin.ananyev@intel.com>, Olivier Matz <olivier.matz@6wind.com>, Gavin Hu <gavin.hu@arm.com> Cc: dev@dpdk.org, nd@arm.com, Feifei Wang <feifei.wang2@arm.com>, stable@dpdk.org Subject: [dpdk-dev] [PATCH v3 5/6] test/ring: fix wrong size used in memcmp Date: Fri, 11 Sep 2020 11:10:01 -0500 Message-ID: <20200911161002.19816-6-feifei.wang2@arm.com> (raw) In-Reply-To: <20200911161002.19816-1-feifei.wang2@arm.com> When using memcmp function to check data, the third param should be the size of all elements, rather than the number of the elements. Furthermore, do code clean up by moving repeated code inside 'test_ring_mem_cmp' function to validate data and print information of enqueue/dequeue elements if validation fails. Fixes: a9fe152363e2 ("test/ring: add custom element size functional tests") Cc: honnappa.nagarahalli@arm.com Cc: stable@dpdk.org Signed-off-by: Feifei Wang <feifei.wang2@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com> --- app/test/test_ring.c | 59 ++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/app/test/test_ring.c b/app/test/test_ring.c index 811adc523..4a2bd39fc 100644 --- a/app/test/test_ring.c +++ b/app/test/test_ring.c @@ -258,6 +258,21 @@ test_ring_mem_init(void *obj, unsigned int count, int esize) ((uint32_t *)obj)[i] = i; } +static int +test_ring_mem_cmp(void *src, void *dst, unsigned int size) +{ + int ret; + + ret = memcmp(src, dst, size); + if (ret) { + rte_hexdump(stdout, "src", src, size); + rte_hexdump(stdout, "dst", dst, size); + printf("data after dequeue is not the same\n"); + } + + return ret; +} + static void test_ring_print_test_string(const char *istr, unsigned int api_type, int esize) { @@ -383,7 +398,7 @@ test_ring_burst_bulk_tests1(unsigned int test_idx) struct rte_ring *r; void **src = NULL, **cur_src = NULL, **dst = NULL, **cur_dst = NULL; int ret; - unsigned int i, j; + unsigned int i, j, temp_sz; int rand; const unsigned int rsz = RING_SIZE - 1; @@ -444,7 +459,11 @@ test_ring_burst_bulk_tests1(unsigned int test_idx) TEST_RING_VERIFY(rte_ring_empty(r)); /* check data */ - TEST_RING_VERIFY(memcmp(src, dst, rsz) == 0); + temp_sz = rsz * sizeof(void *); + if (esize[i] != -1) + temp_sz = rsz * esize[i]; + TEST_RING_VERIFY(test_ring_mem_cmp(src, dst, + temp_sz) == 0); } /* Free memory before test completed */ @@ -538,12 +557,8 @@ test_ring_burst_bulk_tests2(unsigned int test_idx) cur_dst = test_ring_inc_ptr(cur_dst, esize[i], MAX_BULK); /* check data */ - if (memcmp(src, dst, cur_dst - dst)) { - rte_hexdump(stdout, "src", src, cur_src - src); - rte_hexdump(stdout, "dst", dst, cur_dst - dst); - printf("data after dequeue is not the same\n"); + if (test_ring_mem_cmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) goto fail; - } /* Free memory before test completed */ rte_ring_free(r); @@ -614,12 +629,8 @@ test_ring_burst_bulk_tests3(unsigned int test_idx) } /* check data */ - if (memcmp(src, dst, cur_dst - dst)) { - rte_hexdump(stdout, "src", src, cur_src - src); - rte_hexdump(stdout, "dst", dst, cur_dst - dst); - printf("data after dequeue is not the same\n"); + if (test_ring_mem_cmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) goto fail; - } /* Free memory before test completed */ rte_ring_free(r); @@ -747,12 +758,8 @@ test_ring_burst_bulk_tests4(unsigned int test_idx) goto fail; /* check data */ - if (memcmp(src, dst, cur_dst - dst)) { - rte_hexdump(stdout, "src", src, cur_src - src); - rte_hexdump(stdout, "dst", dst, cur_dst - dst); - printf("data after dequeue is not the same\n"); + if (test_ring_mem_cmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) goto fail; - } /* Free memory before test completed */ rte_ring_free(r); @@ -857,12 +864,8 @@ test_ring_basic_ex(void) } /* check data */ - if (memcmp(src, dst, cur_src - src)) { - rte_hexdump(stdout, "src", src, cur_src - src); - rte_hexdump(stdout, "dst", dst, cur_dst - dst); - printf("data after dequeue is not the same\n"); + if (test_ring_mem_cmp(src, dst, RTE_PTR_DIFF(cur_src, src))) goto fail_test; - } /* Following tests use the configured flags to decide * SP/SC or MP/MC. @@ -909,12 +912,8 @@ test_ring_basic_ex(void) cur_dst = test_ring_inc_ptr(cur_dst, esize[i], 2); /* check data */ - if (memcmp(src, dst, cur_dst - dst)) { - rte_hexdump(stdout, "src", src, cur_src - src); - rte_hexdump(stdout, "dst", dst, cur_dst - dst); - printf("data after dequeue is not the same\n"); + if (test_ring_mem_cmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) goto fail_test; - } rte_ring_free(rp); rte_free(src); @@ -1047,12 +1046,8 @@ test_ring_with_exact_size(void) } /* check data */ - if (memcmp(src, dst, cur_dst - dst)) { - rte_hexdump(stdout, "src", src, cur_src - src); - rte_hexdump(stdout, "dst", dst, cur_dst - dst); - printf("data after dequeue is not the same\n"); + if (test_ring_mem_cmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) goto test_fail; - } rte_free(src_orig); rte_free(dst_orig); -- 2.17.1
next prev parent reply other threads:[~2020-09-11 16:11 UTC|newest] Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-29 6:31 [dpdk-dev] [PATCH v1 0/2] wrong pointer passed of ring Feifei Wang 2020-07-29 6:31 ` [dpdk-dev] [PATCH v1 1/2] ring: fix the misdescription of the param Feifei Wang 2020-07-29 15:59 ` David Marchand 2020-07-29 16:24 ` Ananyev, Konstantin 2020-07-29 19:34 ` Honnappa Nagarahalli 2020-07-30 10:16 ` [dpdk-dev] 回复: " Feifei Wang 2020-07-31 5:26 ` [dpdk-dev] " Honnappa Nagarahalli 2020-07-29 6:31 ` [dpdk-dev] [PATCH v1 2/2] test/ring: fix wrong param passed to the enqueue APIs Feifei Wang 2020-07-29 13:48 ` David Marchand 2020-07-29 14:16 ` [dpdk-dev] 回复: " Feifei Wang 2020-07-29 14:21 ` [dpdk-dev] " David Marchand 2020-07-29 15:03 ` [dpdk-dev] 回复: " Feifei Wang 2020-07-29 21:24 ` [dpdk-dev] " Honnappa Nagarahalli 2020-07-30 10:28 ` [dpdk-dev] 回复: " Feifei Wang 2020-07-31 6:25 ` Feifei Wang 2020-08-05 6:14 ` [dpdk-dev] [PATCH v2 0/4] wrong pointer passed and add check Feifei Wang 2020-08-05 6:14 ` [dpdk-dev] [PATCH v2 1/4] test/ring: fix wrong parameter passed to the enqueue APIs Feifei Wang 2020-08-05 6:14 ` [dpdk-dev] [PATCH v2 2/4] test/ring: fix wrong size used in memcmp Feifei Wang 2020-08-26 20:51 ` Honnappa Nagarahalli 2020-08-27 9:05 ` [dpdk-dev] 回复: " Feifei Wang 2020-08-05 6:14 ` [dpdk-dev] [PATCH v2 3/4] test/ring: fix the wrong number of enq/deq elements Feifei Wang 2020-08-26 20:51 ` Honnappa Nagarahalli 2020-08-27 8:54 ` [dpdk-dev] 回复: " Feifei Wang 2020-08-05 6:14 ` [dpdk-dev] [PATCH v2 4/4] test/ring: add check to validate the dequeued objects Feifei Wang 2020-08-26 20:50 ` Honnappa Nagarahalli 2020-08-27 8:47 ` [dpdk-dev] 回复: " Feifei Wang 2020-09-11 16:09 ` [dpdk-dev] [PATCH v3 0/6] fix wrong passed pointer and add check Feifei Wang 2020-09-11 16:09 ` [dpdk-dev] [PATCH v3 1/6] test/ring: add check to validate dequeued objects Feifei Wang 2020-09-14 4:26 ` Honnappa Nagarahalli 2020-09-11 16:09 ` [dpdk-dev] [PATCH v3 2/6] test/ring: fix wrong parameter passed to the enqueue APIs Feifei Wang 2020-09-14 4:28 ` Honnappa Nagarahalli 2020-09-11 16:09 ` [dpdk-dev] [PATCH v3 3/6] test/ring: validate the return value of enq/deq elements Feifei Wang 2020-09-14 4:29 ` Honnappa Nagarahalli 2020-09-11 16:10 ` [dpdk-dev] [PATCH v3 4/6] test/ring: fix wrong number " Feifei Wang 2020-09-14 4:31 ` Honnappa Nagarahalli 2020-09-11 16:10 ` Feifei Wang [this message] 2020-09-14 4:37 ` [dpdk-dev] [PATCH v3 5/6] test/ring: fix wrong size used in memcmp Honnappa Nagarahalli 2020-09-14 9:20 ` David Marchand 2020-09-11 16:10 ` [dpdk-dev] [PATCH v3 6/6] test/ring: improve the application of macro Feifei Wang 2020-09-14 14:33 ` [dpdk-dev] [PATCH v4 0/7] fix wrong passed pointer and add check Feifei Wang 2020-09-14 14:33 ` [dpdk-dev] [PATCH v4 1/7] test/ring: add check to validate dequeued objects Feifei Wang 2020-09-14 14:33 ` [dpdk-dev] [PATCH v4 2/7] test/ring: fix wrong parameter passed to the enqueue APIs Feifei Wang 2020-09-14 14:33 ` [dpdk-dev] [PATCH v4 3/7] test/ring: validate the return value of enq/deq elements Feifei Wang 2020-09-14 14:33 ` [dpdk-dev] [PATCH v4 4/7] test/ring: fix wrong number " Feifei Wang 2020-09-14 14:33 ` [dpdk-dev] [PATCH v4 5/7] test/ring: fix wrong size used in memcmp Feifei Wang 2020-09-14 14:33 ` [dpdk-dev] [PATCH v4 6/7] test/ring: add new function to validate dequeue data Feifei Wang 2020-09-14 14:33 ` [dpdk-dev] [PATCH v4 7/7] test/ring: improve the application of macro Feifei Wang 2020-09-15 6:27 ` [dpdk-dev] [PATCH v5 0/7] fix wrong passed pointer and add check Feifei Wang 2020-09-15 6:27 ` [dpdk-dev] [PATCH v5 1/7] test/ring: fix wrong parameter passed to the enqueue APIs Feifei Wang 2020-09-15 6:27 ` [dpdk-dev] [PATCH v5 2/7] test/ring: fix wrong number of enq/deq elements Feifei Wang 2020-09-15 6:27 ` [dpdk-dev] [PATCH v5 3/7] test/ring: fix wrong size used in memcmp Feifei Wang 2020-09-15 6:27 ` [dpdk-dev] [PATCH v5 4/7] test/ring: add check to validate dequeued objects Feifei Wang 2020-09-15 6:27 ` [dpdk-dev] [PATCH v5 5/7] test/ring: validate the return value of enq/deq elements Feifei Wang 2020-09-15 6:27 ` [dpdk-dev] [PATCH v5 6/7] test/ring: add new function to validate dequeue data Feifei Wang 2020-09-15 6:27 ` [dpdk-dev] [PATCH v5 7/7] test/ring: improve the application of macro Feifei Wang 2020-09-17 16:26 ` Ananyev, Konstantin 2020-09-20 11:54 ` [dpdk-dev] 回复: " Feifei Wang 2020-09-20 11:48 ` [dpdk-dev] [PATCH v6 0/7] Feifei Wang 2020-09-20 11:48 ` [dpdk-dev] [PATCH v6 1/7] test/ring: fix wrong parameter passed to the enqueue APIs Feifei Wang 2020-09-20 11:48 ` [dpdk-dev] [PATCH v6 2/7] test/ring: fix wrong number of enq/deq elements Feifei Wang 2020-09-20 11:48 ` [dpdk-dev] [PATCH v6 3/7] test/ring: fix wrong size used in memcmp Feifei Wang 2020-09-20 11:48 ` [dpdk-dev] [PATCH v6 4/7] test/ring: add check to validate dequeued objects Feifei Wang 2020-09-20 11:48 ` [dpdk-dev] [PATCH v6 5/7] test/ring: validate the return value of enq/deq elements Feifei Wang 2020-09-20 11:48 ` [dpdk-dev] [PATCH v6 6/7] test/ring: add new function to validate dequeue data Feifei Wang 2020-09-20 11:48 ` [dpdk-dev] [PATCH v6 7/7] test/ring: improve the application of macro Feifei Wang 2020-09-20 15:18 ` [dpdk-dev] [PATCH v6 0/7] Ananyev, Konstantin 2020-09-23 9:24 ` David Marchand
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200911161002.19816-6-feifei.wang2@arm.com \ --to=feifei.wang2@arm.com \ --cc=dev@dpdk.org \ --cc=gavin.hu@arm.com \ --cc=honnappa.nagarahalli@arm.com \ --cc=konstantin.ananyev@intel.com \ --cc=nd@arm.com \ --cc=olivier.matz@6wind.com \ --cc=stable@dpdk.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ http://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git