tests: fix bihash unit test threads count 36/35936/4
authorJing Peng <pj.hades@gmail.com>
Mon, 11 Apr 2022 20:36:28 +0000 (16:36 -0400)
committerDamjan Marion <dmarion@me.com>
Tue, 12 Apr 2022 08:05:43 +0000 (08:05 +0000)
In test_bihash_threads, if a test thread fails to be created,
it is still counted towards the total thread count, which could
lead to never-ending test loop. This patch fixes the issue.

Type: fix

Signed-off-by: Jing Peng <pj.hades@gmail.com>
Change-Id: Ic0f1d4dde9c5ea672b52f0e2e49f16d42f982b77

src/plugins/unittest/bihash_test.c

index f4ca3bb..f0c6da2 100644 (file)
@@ -207,16 +207,16 @@ test_bihash_threads (bihash_test_main_t * tm)
   tm->thread_barrier = 1;
 
   /* Start the worker threads */
+  tm->threads_running = 0;
   for (i = 0; i < tm->nthreads; i++)
     {
       rv = pthread_create (&handle, NULL, test_bihash_thread_fn,
                           (void *) (uword) i);
       if (rv)
-       {
-         clib_unix_warning ("pthread_create returned %d", rv);
-       }
+       clib_unix_warning ("pthread_create returned %d", rv);
+      else
+       tm->threads_running++;
     }
-  tm->threads_running = i;
   tm->sequence_number = 0;
   CLIB_MEMORY_BARRIER ();