From 70a7f9f74ac7fc5717056ff083eb7df905a056af Mon Sep 17 00:00:00 2001 From: Jonathan Rajotte Date: Tue, 15 Oct 2019 16:50:46 -0400 Subject: [PATCH] Tests: use "kill -0" for app existence check in NS tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Removing the sleep 0.5 we hit a race where the "-f /proc/$pid_app" test returns false immediately. Using "kill -0" protects us against such races. From kill (2): If sig is 0, then no signal is sent, but existence and permission checks are still performed; this can be used to check for the existence of a process ID or process group ID that the caller is permitted to signal. Signed-off-by: Jonathan Rajotte Signed-off-by: Jérémie Galarneau --- tests/regression/kernel/test_ns_contexts_change | 6 ++---- tests/regression/ust/namespaces/test_ns_contexts_change | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/regression/kernel/test_ns_contexts_change b/tests/regression/kernel/test_ns_contexts_change index 905f6cf2b..08150244d 100755 --- a/tests/regression/kernel/test_ns_contexts_change +++ b/tests/regression/kernel/test_ns_contexts_change @@ -119,13 +119,11 @@ function test_ns() touch "$file_sync_wait_before_unshare" - # Let the app do it's thing before entering the synchronisation loop - sleep 0.5 - while [ ! -f "$file_sync_signal_after_unshare" ]; do # Break if the app failed / died - if [ ! -f "/proc/$app_pid" ]; then + if ! kill -0 "$app_pid" ; then break + echo "# App failed" fi echo "# Waiting for app..." sleep 0.5 diff --git a/tests/regression/ust/namespaces/test_ns_contexts_change b/tests/regression/ust/namespaces/test_ns_contexts_change index 18a22e588..0e03d5393 100755 --- a/tests/regression/ust/namespaces/test_ns_contexts_change +++ b/tests/regression/ust/namespaces/test_ns_contexts_change @@ -72,12 +72,10 @@ function test_ns() $TESTAPP_BIN -n "$ns" -i $NUM_EVENT -a "$file_sync_after_unshare" -b "$file_sync_before_last" & app_pid=$! - # Let the app do it's thing before entering the synchronisation loop - sleep 0.5 - while [ ! -f "$file_sync_after_unshare" ]; do # Break if the app failed / died - if [ ! -f "/proc/$app_pid" ]; then + if ! kill -0 "$app_pid" ; then + echo "# App failed" break fi echo "# Waiting for app..." -- 2.34.1