xref: /dpdk/app/test/test_ring_stress.c (revision 06e2856620a70000b2a28f0ea715fc247b85fd8d)
1bf28df24SKonstantin Ananyev /* SPDX-License-Identifier: BSD-3-Clause
2bf28df24SKonstantin Ananyev  * Copyright(c) 2020 Intel Corporation
3bf28df24SKonstantin Ananyev  */
4bf28df24SKonstantin Ananyev 
5bf28df24SKonstantin Ananyev #include "test_ring_stress.h"
6bf28df24SKonstantin Ananyev 
7bf28df24SKonstantin Ananyev static int
8bf28df24SKonstantin Ananyev run_test(const struct test *test)
9bf28df24SKonstantin Ananyev {
10bf28df24SKonstantin Ananyev 	int32_t rc;
11bf28df24SKonstantin Ananyev 	uint32_t i, k;
12bf28df24SKonstantin Ananyev 
13bf28df24SKonstantin Ananyev 	for (i = 0, k = 0; i != test->nb_case; i++) {
14bf28df24SKonstantin Ananyev 
15bf28df24SKonstantin Ananyev 		printf("TEST-CASE %s %s START\n",
16bf28df24SKonstantin Ananyev 			test->name, test->cases[i].name);
17bf28df24SKonstantin Ananyev 
18bf28df24SKonstantin Ananyev 		rc = test->cases[i].func(test->cases[i].wfunc);
19bf28df24SKonstantin Ananyev 		k += (rc == 0);
20bf28df24SKonstantin Ananyev 
21bf28df24SKonstantin Ananyev 		if (rc != 0)
22bf28df24SKonstantin Ananyev 			printf("TEST-CASE %s %s FAILED\n",
23bf28df24SKonstantin Ananyev 				test->name, test->cases[i].name);
24bf28df24SKonstantin Ananyev 		else
25bf28df24SKonstantin Ananyev 			printf("TEST-CASE %s %s OK\n",
26bf28df24SKonstantin Ananyev 				test->name, test->cases[i].name);
27bf28df24SKonstantin Ananyev 	}
28bf28df24SKonstantin Ananyev 
29bf28df24SKonstantin Ananyev 	return k;
30bf28df24SKonstantin Ananyev }
31bf28df24SKonstantin Ananyev 
32bf28df24SKonstantin Ananyev static int
33bf28df24SKonstantin Ananyev test_ring_stress(void)
34bf28df24SKonstantin Ananyev {
35bf28df24SKonstantin Ananyev 	uint32_t n, k;
36bf28df24SKonstantin Ananyev 
37bf28df24SKonstantin Ananyev 	n = 0;
38bf28df24SKonstantin Ananyev 	k = 0;
39bf28df24SKonstantin Ananyev 
40bf28df24SKonstantin Ananyev 	n += test_ring_mpmc_stress.nb_case;
41bf28df24SKonstantin Ananyev 	k += run_test(&test_ring_mpmc_stress);
42bf28df24SKonstantin Ananyev 
43a9e23c7fSKonstantin Ananyev 	n += test_ring_rts_stress.nb_case;
44a9e23c7fSKonstantin Ananyev 	k += run_test(&test_ring_rts_stress);
45a9e23c7fSKonstantin Ananyev 
461cf65e43SKonstantin Ananyev 	n += test_ring_hts_stress.nb_case;
471cf65e43SKonstantin Ananyev 	k += run_test(&test_ring_hts_stress);
481cf65e43SKonstantin Ananyev 
496749637aSKonstantin Ananyev 	n += test_ring_mt_peek_stress.nb_case;
506749637aSKonstantin Ananyev 	k += run_test(&test_ring_mt_peek_stress);
51582581d5SKonstantin Ananyev 
52f72299fdSHonnappa Nagarahalli 	n += test_ring_mt_peek_stress_zc.nb_case;
53f72299fdSHonnappa Nagarahalli 	k += run_test(&test_ring_mt_peek_stress_zc);
54f72299fdSHonnappa Nagarahalli 
55fb5d9d54SKonstantin Ananyev 	n += test_ring_st_peek_stress.nb_case;
56fb5d9d54SKonstantin Ananyev 	k += run_test(&test_ring_st_peek_stress);
57fb5d9d54SKonstantin Ananyev 
58f72299fdSHonnappa Nagarahalli 	n += test_ring_st_peek_stress_zc.nb_case;
59f72299fdSHonnappa Nagarahalli 	k += run_test(&test_ring_st_peek_stress_zc);
60f72299fdSHonnappa Nagarahalli 
61bf28df24SKonstantin Ananyev 	printf("Number of tests:\t%u\nSuccess:\t%u\nFailed:\t%u\n",
62bf28df24SKonstantin Ananyev 		n, k, n - k);
63bf28df24SKonstantin Ananyev 	return (k != n);
64bf28df24SKonstantin Ananyev }
65bf28df24SKonstantin Ananyev 
66*06e28566SKonstantin Ananyev REGISTER_STRESS_TEST(ring_stress_autotest, test_ring_stress);
67