X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Fdestructive%2Fmetadata-regeneration;h=a8b57633f7b73b4b9198fc8568dcdd9c246b805c;hb=a24ac4d11a41674eaecce6036c6f52be25c07d7b;hp=db4976302d5a045a364c798ee982e4ddace273b9;hpb=fa1289fc106deb2f88249e1ebdcf87d9b493b2a6;p=lttng-tools.git diff --git a/tests/destructive/metadata-regeneration b/tests/destructive/metadata-regeneration index db4976302..a8b57633f 100755 --- a/tests/destructive/metadata-regeneration +++ b/tests/destructive/metadata-regeneration @@ -1,19 +1,9 @@ #!/bin/bash # -# Copyright (C) - 2015 Julien Desfossez +# Copyright (C) 2015 Julien Desfossez # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License, version 2 only, as -# published by the Free Software Foundation. +# SPDX-License-Identifier: GPL-2.0-only # -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # WARNING: this test changes the date of the system (and does not set it back). # This test sets the date of the current machine to $DATE1, creates a trace @@ -23,12 +13,12 @@ TEST_DESC="Metadata regeneration after date change" -CURDIR=$(dirname $0)/ +CURDIR=$(dirname "$0")/ TESTDIR=$CURDIR/.. NUM_TESTS=44 SESSION_NAME="regen" KERNEL_EVENT_NAME="lttng_test_filter_event" -TRACE_PATH=$(mktemp -d) +TRACE_PATH=$(mktemp --tmpdir -d -t tmp.metadata_regen_after_data_change.XXXXXX) TESTAPP_PATH="$TESTDIR/utils/testapp" TESTAPP_NAME="gen-ust-events" @@ -41,24 +31,22 @@ DATE1="1970-02-02" DATE2="1980-02-02" HOUR="05:30" -source $TESTDIR/utils/utils.sh +source "$TESTDIR/utils/utils.sh" # MUST set TESTDIR before calling those functions plan_tests $NUM_TESTS print_test_banner "$TEST_DESC" +bail_out_if_no_babeltrace + + function validate_trace_date { local test_date=$1 local trace_path=$2 - which $BABELTRACE_BIN >/dev/null - if [ $? -ne 0 ]; then - skip 0 "Babeltrace binary not found. Skipping trace validation" - fi - - res=$($BABELTRACE_BIN --clock-date $trace_path 2>/dev/null | head -1 | grep $test_date) + res=$($BABELTRACE_BIN --clock-date "$trace_path" 2>/dev/null | head -1 | grep $test_date) if [ $? -eq 0 ]; then pass "Validate trace at date $test_date" ret=0 @@ -74,17 +62,17 @@ function test_kernel_local () { diag "Test kernel local with metadata regeneration" date "+%Y-%m-%d %H:%M" -s "$DATE1 $HOUR" >/dev/null - create_lttng_session_ok $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME "$TRACE_PATH" lttng_enable_kernel_event $SESSION_NAME $KERNEL_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME echo -n "100" > /proc/lttng-test-filter-event stop_lttng_tracing_ok $SESSION_NAME - validate_trace_date $DATE1 $TRACE_PATH + validate_trace_date $DATE1 "$TRACE_PATH" start_lttng_tracing_ok $SESSION_NAME date "+%Y-%m-%d %H:%M" -s "$DATE2 $HOUR" >/dev/null regenerate_metadata_ok $SESSION_NAME stop_lttng_tracing_ok $SESSION_NAME - validate_trace_date $DATE2 $TRACE_PATH + validate_trace_date $DATE2 "$TRACE_PATH" if [ $? -eq 0 ]; then # Only delete if successful rm -rf $TRACE_PATH @@ -112,15 +100,18 @@ function test_kernel_streaming () # Only delete if successful rm -rf $TRACE_PATH else - break + return fi destroy_lttng_session_ok $SESSION_NAME } function test_ust_local () { - local file_sync_after_first=$(mktemp -u) - local file_sync_before_last=$(mktemp -u) + local file_sync_after_first + local file_sync_before_last + + file_sync_after_first=$(mktemp --tmpdir -u -t "tmp.${FUNCNAME[0]}_sync_after_first.XXXXXX") + file_sync_before_last=$(mktemp --tmpdir -u -t "tmp.${FUNCNAME[0]}_sync_before_last.XXXXXX") diag "Test UST local with metadata regeneration" date "+%Y-%m-%d %H:%M" -s "$DATE1 $HOUR" >/dev/null @@ -128,17 +119,17 @@ function test_ust_local () enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \ - --sync-after-first-event ${file_sync_after_first} \ - --sync-before-last-event ${file_sync_before_last} > /dev/null 2>&1 & + --sync-after-first-event "${file_sync_after_first}" \ + --sync-before-last-event "${file_sync_before_last}" > /dev/null 2>&1 & start_lttng_tracing_ok $SESSION_NAME - touch ${file_sync_before_last} + touch "${file_sync_before_last}" # Wait for the applications started in background wait stop_lttng_tracing_ok $SESSION_NAME - validate_trace_date $DATE1 $TRACE_PATH + validate_trace_date $DATE1 "$TRACE_PATH" start_lttng_tracing_ok $SESSION_NAME date "+%Y-%m-%d %H:%M" -s "$DATE2 $HOUR" >/dev/null @@ -146,19 +137,22 @@ function test_ust_local () stop_lttng_tracing_ok $SESSION_NAME destroy_lttng_session_ok $SESSION_NAME - validate_trace_date $DATE2 $TRACE_PATH + validate_trace_date $DATE2 "$TRACE_PATH" if [ $? -eq 0 ]; then # Only delete if successful - rm -rf $TRACE_PATH + rm -rf "$TRACE_PATH" fi - rm -f ${file_sync_after_first} - rm -f ${file_sync_before_last} + rm -f "${file_sync_after_first}" + rm -f "${file_sync_before_last}" } function test_ust_streaming () { - local file_sync_after_first=$(mktemp -u) - local file_sync_before_last=$(mktemp -u) + local file_sync_after_first + local file_sync_before_last + + file_sync_after_first=$(mktemp --tmpdir -u -t "tmp.${FUNCNAME[0]}_sync_after_first.XXXXXX") + file_sync_before_last=$(mktemp --tmpdir -u -t "tmp.${FUNCNAME[0]}_sync_before_last.XXXXXX") diag "Test UST streaming with metadata regeneration" date "+%Y-%m-%d %H:%M" -s "$DATE1 $HOUR" >/dev/null @@ -166,12 +160,12 @@ function test_ust_streaming () enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \ - --sync-after-first-event ${file_sync_after_first} \ - --sync-before-last-event ${file_sync_before_last} > /dev/null 2>&1 & + --sync-after-first-event "${file_sync_after_first}" \ + --sync-before-last-event "${file_sync_before_last}" > /dev/null 2>&1 & start_lttng_tracing_ok $SESSION_NAME - touch ${file_sync_before_last} + touch "${file_sync_before_last}" # Wait for the applications started in background wait @@ -189,10 +183,10 @@ function test_ust_streaming () validate_trace_date $DATE2 $TRACE_PATH/$HOSTNAME/$SESSION_NAME* if [ $? -eq 0 ]; then # Only delete if successful - rm -rf $TRACE_PATH + rm -rf "$TRACE_PATH" fi - rm -f ${file_sync_after_first} - rm -f ${file_sync_before_last} + rm -f "${file_sync_after_first}" + rm -f "${file_sync_before_last}" } if [ "$(id -u)" == "0" ]; then @@ -202,8 +196,9 @@ else fi if ! destructive_tests_enabled ; then - echo 'You need to set the LTTNG_ENABLE_DESTRUCTIVE_TESTS to "will-break-my-system" as argument to run this test' - echo 'Moreover, please make sure that ntp is not running while executing this test' + echo 'Please make sure that ntp is not running while executing this test' + skip 0 "You need to set the LTTNG_ENABLE_DESTRUCTIVE_TESTS environment variable to \"will-break-my-system\" to run this test" $NUM_TESTS + exit 0 fi @@ -215,7 +210,7 @@ skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || modprobe lttng-test test_kernel_local test_kernel_streaming - rmmod lttng-test + modprobe --remove lttng-test test_ust_local test_ust_streaming