Tests: Preemptively fail infinite blocking tests when low on disk space
authorKienan Stewart <kstewart@efficios.com>
Wed, 21 Jun 2023 13:39:06 +0000 (09:39 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 28 Jul 2023 19:45:28 +0000 (15:45 -0400)
In the system tests run by LAVA, the infinite blocking tests were
hanging when the system under test ran out of disk space. This is the
expected behaviour of the failing test, but the condition can be
detected and the tests preemptively failed with a clear error of what
needs to be addressed in the system being tested.

Change-Id: I9e6126408b57c2cd5aa64c2e360e0672f9eb2314
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
tests/regression/ust/blocking/test_blocking

index fcf1ad94d016445c58b273772469f963976f1728..9fdde5b4fc379e7c56b10445dd75982a18fc6f76 100755 (executable)
@@ -30,6 +30,19 @@ function run_app()
        ok $? "Application done"
 }
 
+function check_disk_space()
+{
+       local path
+
+       path="${1:?}"
+       kb_free=$(df -k -P "${path}" | tail -n 1 | awk '{ print $4 }')
+       if [ "${kb_free}" -lt "1048576" ] ; then
+               return 1
+       fi
+
+       return 0
+}
+
 function test_ust_implicit_no_blocking()
 {
        NUM_EVENT=5000000
@@ -134,6 +147,10 @@ plan_tests $NUM_TESTS
 
 print_test_banner "$TEST_DESC"
 
+if ! check_disk_space "${TMPDIR:-/tmp}"; then
+       BAIL_OUT "Not enough free space to run blocking tests"
+fi
+
 TESTS=(
        "test_ust_implicit_no_blocking"
        "test_ust_implicit_no_blocking_with_channel_blocking"
This page took 0.028032 seconds and 4 git commands to generate.