From 0b6e5773058e85b8e5e6ce83d3b275726e6883f2 Mon Sep 17 00:00:00 2001
From: AlexChen <alex.chen@huawei.com>
Date: Wed, 16 Sep 2020 15:53:57 +0800
Subject: [PATCH] tests/commandtest: skip the test4 if the testcase is run in
 the container env

In a container environment without an init thread, the daemoned
process is not reclaimed, and Test4 loops forever, causing
the compilation to hung. So, skip it.

Signed-off-by: AlexChen <alex.chen@huawei.com>
---
 tests/commandtest.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/tests/commandtest.c b/tests/commandtest.c
index d5092b7dd0..ce492e31f7 100644
--- a/tests/commandtest.c
+++ b/tests/commandtest.c
@@ -259,6 +259,7 @@ static int test4(const void *unused G_GNUC_UNUSED)
     char *pidfile = virPidFileBuildPath(abs_builddir, "commandhelper");
     pid_t pid;
     int ret = -1;
+    int count = 0;
 
     if (!pidfile)
         goto cleanup;
@@ -275,9 +276,13 @@ static int test4(const void *unused G_GNUC_UNUSED)
         printf("cannot read pidfile\n");
         goto cleanup;
     }
-    while (kill(pid, 0) != -1)
-        g_usleep(100*1000);
-
+    while (kill(pid, 0) != -1) {
+        if (count++ >= 600) {
+            printf("check time exceeds 60s, it may be in container env, skip this testcase!!!\n");
+            break;
+        }
+        g_usleep(100*1000); /* 100 */
+    }
     ret = checkoutput("test4", NULL);
 
  cleanup:
-- 
2.27.0

