port: add support for BSD mktemp
[lttng-tools.git] / tests / regression / tools / regen-metadata / test_kernel
index 0f879e6360b3c500720b6f302d264c3974f5b0ca..7c4191a47909ae38bd16221fcb0341692972de22 100755 (executable)
@@ -11,9 +11,9 @@ TESTDIR=$CURDIR/../../..
 EVENT_NAME="lttng_test_filter_event"
 SESSION_NAME=""
 
-TRACE_PATH=$(mktemp -d)
+TRACE_PATH=$(mktemp -d -t tmp.test_regen_metadata_kernel_trace_path.XXXXXX)
 
-NUM_TESTS=24
+NUM_TESTS=32
 
 source $TESTDIR/utils/utils.sh
 
@@ -32,7 +32,7 @@ function test_kernel_streaming ()
        validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME*
 
        # Find the metadata file
-       metadata_path=$(find "$TRACE_PATH/$HOSTNAME/$SESSION_NAME"* | grep metadata)
+       metadata_path=$(find "$TRACE_PATH/$HOSTNAME/$SESSION_NAME"* -name "metadata")
 
        # Empty the metadata file
        echo -n > "$metadata_path"
@@ -61,7 +61,7 @@ function test_kernel_local ()
        validate_trace $EVENT_NAME "$TRACE_PATH"
 
        # Find the metadata file
-       metadata_path=$(find "$TRACE_PATH"* | grep metadata)
+       metadata_path=$(find "$TRACE_PATH"* -name "metadata")
 
        # Empty the metadata file
        echo -n > "$metadata_path"
@@ -76,6 +76,25 @@ function test_kernel_local ()
        rm -rf "$TRACE_PATH"
 }
 
+function test_kernel_local_snapshot_after_regenerate_metadata ()
+{
+       diag "Test kernel local snapshot after regenerate metadata"
+       create_lttng_session_ok $SESSION_NAME "$TRACE_PATH" --snapshot
+       lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME
+       start_lttng_tracing_ok $SESSION_NAME
+
+       echo -n "100" > /proc/lttng-test-filter-event
+
+       regenerate_metadata_ok $SESSION_NAME
+       lttng_snapshot_record $SESSION_NAME "$TRACE_PATH"
+       stop_lttng_tracing_ok $SESSION_NAME
+
+       validate_trace $EVENT_NAME "$TRACE_PATH"
+       destroy_lttng_session_ok $SESSION_NAME
+
+       rm -rf "$TRACE_PATH"
+}
+
 plan_tests $NUM_TESTS
 
 print_test_banner "$TEST_DESC"
@@ -94,7 +113,8 @@ skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_
        start_lttng_sessiond
        modprobe lttng-test
 
-       tests=( test_kernel_streaming test_kernel_local )
+       tests=( test_kernel_streaming test_kernel_local
+               test_kernel_local_snapshot_after_regenerate_metadata )
 
        for fct_test in ${tests[@]};
        do
@@ -102,7 +122,7 @@ skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_
                ${fct_test}
        done
 
-       rmmod lttng-test
+       modprobe --remove lttng-test
        stop_lttng_sessiond
        stop_lttng_relayd
 }
This page took 0.024095 seconds and 4 git commands to generate.