# Temp file output
OUTPUT_DIR=$(mktemp -d)
-NUM_TESTS=71
+LAST_APP_PID=
+
+NUM_TESTS=77
source $TESTDIR/utils/utils.sh
local tmp_file=$(mktemp -u)
# Start application with a temporary file.
- $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT $tmp_file &
+ $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT --sync-after-first-event $tmp_file &
ret=$?
+ LAST_APP_PID="${!}"
APPS_PID="${APPS_PID} ${!}"
ok $ret "Start application to trace"
diag "Stopping $p"
kill ${p} 2>/dev/null
wait ${p} 2>/dev/null
+ diag "Stopped $p"
done
}
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()
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"
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)
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"
# 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"
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"
start_lttng_tracing_ok $session_name
# Generate 10 events
- $TESTAPP_BIN 10 0
- stop_lttng_tracing
+ $TESTAPP_BIN -i 10 -w 0
+ stop_lttng_tracing_ok
crash_recup_count=$($LTTNG_CRASH $shm_path | wc -l)
test $crash_recup_count -eq "10"
start_lttng_tracing_ok $session_name
# Generate 10 events
- $TESTAPP_BIN 10 0
- stop_lttng_tracing
+ $TESTAPP_BIN -i 10 -w 0
+ stop_lttng_tracing_ok
$LTTNG_CRASH -x $extraction_path $shm_path
ok $? "Extraction of crashed buffers to path"
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)
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)
start_lttng_tracing_ok $session_name
# Generate 10 events
- $TESTAPP_BIN 10 0
+ $TESTAPP_BIN -i 10 -w 0
+
+ sigstop_lttng_sessiond
+ sigstop_lttng_consumerd
# Kill the consumers then sessiond with sigkill
stop_lttng_consumerd SIGKILL
rm -rf $extraction_dir_path
}
+function interrupt_cleanup()
+{
+ diag "*** Cleaning-up test ***"
+ stop_test_apps
+ full_cleanup
+}
+
TESTS=(
test_shm_path_per_uid
test_shm_path_per_pid
test_lttng_crash_extraction_sigkill
)
+trap interrupt_cleanup SIGTERM SIGINT
for fct_test in ${TESTS[@]};
do