Tests: Clean-up test-crash on SIGTERM and SIGINT
[lttng-tools.git] / tests / regression / tools / crash / test_crash
index ff5d0e3261d83c149ee3d1573ba4e5fe9c879849..be61cda2fb2dfa4c0399829276144a020e862299 100755 (executable)
@@ -31,7 +31,7 @@ NR_ITER=-1
 # Temp file output
 OUTPUT_DIR=$(mktemp -d)
 
-NUM_TESTS=70
+NUM_TESTS=71
 
 source $TESTDIR/utils/utils.sh
 
@@ -87,19 +87,11 @@ function stop_test_app()
 function verify_path_dont_exists()
 {
        local path=$1
-       local timeout_try_limit=100
-       local timeout_try_count=0
-       local timeout_flag=0
 
        while find $path -mindepth 1 -maxdepth 1 &>/dev/null ; do
-               if [[ $timeout_try_count -gt $timeout_try_limit ]]; then
-                       timeout_flag=1
-                       break
-               fi
-               timeout_try_count=$((timeout_try_count+1))
-               sleep 0.1
+               sleep 2
        done
-       return $timeout_flag
+       return 0
 }
 
 function test_shm_path_per_pid()
@@ -225,6 +217,7 @@ function test_lttng_crash()
        local session_name=crash_test
        local channel_name=channel_crash
        local shm_path=$(mktemp -d)
+       local shm_path_symlink=$(mktemp -d)
        local event_name="tp:tptest"
 
        # Create a session in snapshot mode to deactivate any use of consumerd
@@ -242,10 +235,17 @@ function test_lttng_crash()
        test $crash_recup_count -eq "10"
        ok $? "Expect 10 recup event from buffers got $crash_recup_count"
 
+       # Test with symlink
+       cp -rs $shm_path/. $shm_path_symlink
+       crash_recup_count=$($LTTNG_CRASH $shm_path_symlink | wc -l)
+       test $crash_recup_count -eq "10"
+       ok $? "Expect 10 recup event from symlink buffers got $crash_recup_count"
+
        # Tear down
        destroy_lttng_session_ok $session_name
        stop_lttng_sessiond
        rm -rf $shm_path
+       rm -rf $shm_path_symlink
 }
 
 function test_lttng_crash_extraction()
@@ -377,16 +377,25 @@ function test_lttng_crash_extraction_sigkill()
        rm -rf $extraction_dir_path
 }
 
+function interrupt_cleanup()
+{
+    diag "*** Cleaning-up test ***"
+    stop_test_apps
+    stop_lttng_sessiond
+    exit 1
+}
+
 TESTS=(
        test_shm_path_per_uid
        test_shm_path_per_pid
-       test_lttng_crash
-       test_lttng_crash_extraction
        test_shm_path_per_pid_sigint
        test_shm_path_per_uid_sigint
+       test_lttng_crash
+       test_lttng_crash_extraction
        test_lttng_crash_extraction_sigkill
 )
 
+trap interrupt_cleanup SIGTERM SIGINT
 
 for fct_test in ${TESTS[@]};
 do
This page took 0.041341 seconds and 4 git commands to generate.