tests: invoke full_cleanup from script trap handlers, use modprobe -r
[lttng-tools.git] / tests / regression / tools / crash / test_crash
index be61cda2fb2dfa4c0399829276144a020e862299..ad03bf404863a1d603f709ff1567de725737854a 100755 (executable)
@@ -31,7 +31,9 @@ NR_ITER=-1
 # Temp file output
 OUTPUT_DIR=$(mktemp -d)
 
-NUM_TESTS=71
+LAST_APP_PID=
+
+NUM_TESTS=77
 
 source $TESTDIR/utils/utils.sh
 
@@ -50,6 +52,7 @@ function start_test_app()
        # Start application with a temporary file.
        $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT $tmp_file &
        ret=$?
+       LAST_APP_PID="${!}"
        APPS_PID="${APPS_PID} ${!}"
        ok $ret "Start application to trace"
 
@@ -81,6 +84,7 @@ function stop_test_app()
                diag "Stopping $p"
                kill ${p} 2>/dev/null
                wait ${p} 2>/dev/null
+               diag "Stopped $p"
        done
 }
 
@@ -106,6 +110,8 @@ function test_shm_path_per_pid()
        create_lttng_session_ok $session_name $OUTPUT_DIR "--shm-path $shm_path"
        enable_ust_lttng_channel_ok $session_name $channel_name "--buffers-pid"
 
+       start_lttng_tracing_ok $session_name
+
        diag "Shm: clean state"
        file_count=$(find $shm_path -mindepth 1 -maxdepth 1 | wc -l)
        test $file_count -eq "0"
@@ -116,7 +122,7 @@ function test_shm_path_per_pid()
        diag "Shm: check folder creation and structure"
 
        start_test_app
-       first_app_pid=$APPS_PID
+       first_app_pid=$LAST_APP_PID
        shm_session_path=$(find $shm_path -mindepth 1 -maxdepth 1)
 
        file_count=$(echo "$shm_session_path"| wc -l)
@@ -139,6 +145,7 @@ function test_shm_path_per_pid()
        diag "Shm: check basic creation of second ust application"
 
        start_test_app
+       second_app_pid=$LAST_APP_PID
        second_pid_path=$(find $shm_session_path/ust/pid -mindepth 1 -maxdepth 1)
        ok $? "Pid path exist found $second_pid_path"
 
@@ -148,6 +155,7 @@ function test_shm_path_per_pid()
 
        # Stop first test application and check for cleanup
        stop_test_app "$first_app_pid"
+       APPS_PID="$second_app_pid"
        verify_path_dont_exists "$first_pid_path"
        ok $? "First pid cleanup"
 
@@ -174,6 +182,8 @@ function test_shm_path_per_uid()
        create_lttng_session_ok $session_name $OUTPUT_DIR "--shm-path $shm_path"
        enable_ust_lttng_channel_ok $session_name $channel_name "--buffers-uid"
 
+       start_lttng_tracing_ok $session_name
+
        diag "Shm: test clean state"
        file_count=$(find $shm_path -mindepth 1 -maxdepth 1 | wc -l)
        test $file_count -eq "0"
@@ -229,7 +239,7 @@ function test_lttng_crash()
 
        # Generate 10 events
        $TESTAPP_BIN 10 0
-       stop_lttng_tracing
+       stop_lttng_tracing_ok
 
        crash_recup_count=$($LTTNG_CRASH $shm_path | wc -l)
        test $crash_recup_count -eq "10"
@@ -267,7 +277,7 @@ function test_lttng_crash_extraction()
        start_lttng_tracing_ok $session_name
        # Generate 10 events
        $TESTAPP_BIN 10 0
-       stop_lttng_tracing
+       stop_lttng_tracing_ok
 
        $LTTNG_CRASH -x $extraction_path $shm_path
        ok $? "Extraction of crashed buffers to path"
@@ -295,6 +305,8 @@ function test_shm_path_per_pid_sigint()
        create_lttng_session_ok $session_name $OUTPUT_DIR "--shm-path $shm_path"
        enable_ust_lttng_channel_ok $session_name $channel_name "--buffers-pid"
 
+       start_lttng_tracing_ok $session_name
+
        start_test_app
        start_test_app
        shm_session_path=$(find $shm_path -mindepth 1 -maxdepth 1)
@@ -324,6 +336,8 @@ function test_shm_path_per_uid_sigint()
        create_lttng_session_ok $session_name $OUTPUT_DIR "--shm-path $shm_path"
        enable_ust_lttng_channel_ok $session_name $channel_name "--buffers-uid"
 
+       start_lttng_tracing_ok $session_name
+
        start_test_app
        start_test_app
        shm_session_path=$(find $shm_path -mindepth 1 -maxdepth 1)
@@ -360,6 +374,9 @@ function test_lttng_crash_extraction_sigkill()
        # Generate 10 events
        $TESTAPP_BIN 10 0
 
+       sigstop_lttng_sessiond
+       sigstop_lttng_consumerd
+
        # Kill the consumers then sessiond with sigkill
        stop_lttng_consumerd SIGKILL
        stop_lttng_sessiond SIGKILL
@@ -381,8 +398,7 @@ function interrupt_cleanup()
 {
     diag "*** Cleaning-up test ***"
     stop_test_apps
-    stop_lttng_sessiond
-    exit 1
+    full_cleanup
 }
 
 TESTS=(
This page took 0.025712 seconds and 5 git commands to generate.