All of lore.kernel.org
 help / color / mirror / Atom feed
From: Feifei Wang <feifei.wang2@arm.com>
To: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>,
	Konstantin Ananyev <konstantin.ananyev@intel.com>
Cc: dev@dpdk.org, nd@arm.com, Feifei Wang <feifei.wang2@arm.com>
Subject: [dpdk-dev] [PATCH v5 6/7] test/ring: add new function to validate dequeue data
Date: Tue, 15 Sep 2020 01:27:48 -0500	[thread overview]
Message-ID: <20200915062749.21374-7-feifei.wang2@arm.com> (raw)
In-Reply-To: <20200915062749.21374-1-feifei.wang2@arm.com>

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.

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>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
---
 app/test/test_ring.c | 70 +++++++++++++++++---------------------------
 1 file changed, 27 insertions(+), 43 deletions(-)

diff --git a/app/test/test_ring.c b/app/test/test_ring.c
index da57032c7..fb46614f8 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,12 +459,11 @@ test_ring_burst_bulk_tests1(unsigned int test_idx)
 			TEST_RING_VERIFY(rte_ring_empty(r));
 
 			/* check data */
-			if (esize[i] == -1) {
-				TEST_RING_VERIFY(memcmp(src, dst,
-					rsz * sizeof(void *)) == 0);
-			} else
-				TEST_RING_VERIFY(memcmp(src, dst,
-					rsz * esize[i]) == 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 */
@@ -543,14 +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, RTE_PTR_DIFF(cur_dst, dst))) {
-			rte_hexdump(stdout, "src", src,
-					RTE_PTR_DIFF(cur_src, src));
-			rte_hexdump(stdout, "dst", dst,
-					RTE_PTR_DIFF(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);
@@ -621,14 +629,8 @@ test_ring_burst_bulk_tests3(unsigned int test_idx)
 		}
 
 		/* check data */
-		if (memcmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) {
-			rte_hexdump(stdout, "src", src,
-					RTE_PTR_DIFF(cur_src, src));
-			rte_hexdump(stdout, "dst", dst,
-					RTE_PTR_DIFF(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);
@@ -756,14 +758,8 @@ test_ring_burst_bulk_tests4(unsigned int test_idx)
 			goto fail;
 
 		/* check data */
-		if (memcmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) {
-			rte_hexdump(stdout, "src", src,
-					RTE_PTR_DIFF(cur_src, src));
-			rte_hexdump(stdout, "dst", dst,
-					RTE_PTR_DIFF(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);
@@ -868,12 +864,8 @@ test_ring_basic_ex(void)
 		}
 
 		/* check data */
-		if (memcmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) {
-			rte_hexdump(stdout, "src", src, RTE_PTR_DIFF(cur_src, src));
-			rte_hexdump(stdout, "dst", dst, RTE_PTR_DIFF(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;
-		}
 
 		/* Following tests use the configured flags to decide
 		 * SP/SC or MP/MC.
@@ -920,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, RTE_PTR_DIFF(cur_dst, dst))) {
-			rte_hexdump(stdout, "src", src, RTE_PTR_DIFF(cur_src, src));
-			rte_hexdump(stdout, "dst", dst, RTE_PTR_DIFF(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);
@@ -1058,12 +1046,8 @@ test_ring_with_exact_size(void)
 		}
 
 		/* check data */
-		if (memcmp(src, dst, RTE_PTR_DIFF(cur_dst, dst))) {
-			rte_hexdump(stdout, "src", src, RTE_PTR_DIFF(cur_src, src));
-			rte_hexdump(stdout, "dst", dst, RTE_PTR_DIFF(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


  parent reply	other threads:[~2020-09-15  6:29 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   ` [dpdk-dev] [PATCH v3 5/6] test/ring: fix wrong size used in memcmp Feifei Wang
2020-09-14  4:37     ` 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   ` Feifei Wang [this message]
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=20200915062749.21374-7-feifei.wang2@arm.com \
    --to=feifei.wang2@arm.com \
    --cc=dev@dpdk.org \
    --cc=honnappa.nagarahalli@arm.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=nd@arm.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.