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