When the secondary process run from timer_secontary_autotest fails, the
timer loop is never stopped so the whole process hangs until timeout.
Fix this by setting the stop flag before checking for success or failure
of the secondary process.

Fixes: 50247fe03fe0 ("test/timer: exercise new APIs in secondary process")
Cc: [email protected]

Signed-off-by: Bruce Richardson <[email protected]>
---
 app/test/test_timer_secondary.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/app/test/test_timer_secondary.c b/app/test/test_timer_secondary.c
index ee2675a821..8580880a56 100644
--- a/app/test/test_timer_secondary.c
+++ b/app/test/test_timer_secondary.c
@@ -160,11 +160,12 @@ test_timer_secondary(void)
                TEST_ASSERT_SUCCESS(ret, "Failed to launch timer manage loop");
 
                ret = timer_secondary_spawn_wait(*sec_lcorep);
-               TEST_ASSERT_SUCCESS(ret, "Secondary process execution failed");
+               /* must set exit flag even on error case, so check ret later */
 
                rte_delay_ms(500);
-
                test_info->exit_flag = 1;
+
+               TEST_ASSERT_SUCCESS(ret, "Secondary process execution failed");
                rte_eal_wait_lcore(*mgr_lcorep);
 
 #ifdef RTE_LIBRTE_TIMER_DEBUG
-- 
2.51.0

Reply via email to