Tests: Handle rotations happening on two separate days during testing
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Wed, 4 Apr 2018 19:32:27 +0000 (15:32 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 10 Apr 2018 19:41:37 +0000 (15:41 -0400)
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
tests/regression/tools/rotation/rotate_utils.sh
tests/regression/tools/rotation/test_kernel
tests/regression/tools/rotation/test_ust

index 80b2eb75338dc8dc1f95fd73efcf01d570b50ef5..3d622decaf7d4b43d494973a9d96092b4400c45d 100644 (file)
@@ -26,12 +26,25 @@ function clean_path ()
        set +u
 }
 
-function set_chunk_pattern ()
+# The extglob shell option must be enabled to use the pattern generated by this
+# function (shopt -s extglob/ shopt -u extglob).
+# The pattern returned by this function is to validate the form:
+#    YYYYMMDDTHHMMSS[+-]HHMM-YYYYMMDDTHHMMSS[+-]HHMM
+#
+# Where YYYYMMDD is today or tomorrow. Tomorrow must be supported in case where
+# the chunks are generated close to midnight and one ends up the following day.
+function get_chunk_pattern ()
 {
-       # Need to call this function after $today has been set.
+       local today=$1
+       tommorow=$(date +%Y%m%d -d "${today}+1days")
+       pattern_hour_min="[0-9][0-9][0-9][0-9]"
+       pattern_hour_min_sec="${pattern_hour_min}[0-9][0-9]"
+
+       base_pattern="@(${today}|${tommorow})T${pattern_hour_min_sec}[+-]${pattern_hour_min}"
 
+       # Return the pattern
        # YYYYMMDDTHHMMSS[+-]HHMM-YYYYMMDDTHHMMSS[+-]HHMM
-       export chunk_pattern="${today}T[0-9][0-9][0-9][0-9][0-9][0-9][+-][0-9][0-9][0-9][0-9]-${today}T[0-9][0-9][0-9][0-9][0-9][0-9][+-][0-9][0-9][0-9][0-9]"
+       echo "${base_pattern}-${base_pattern}"
 }
 
 function validate_test_chunks ()
@@ -42,8 +55,11 @@ function validate_test_chunks ()
        domain=$4
        per_pid=$5
 
-       set_chunk_pattern
        local path=
+       local chunk_pattern=$(get_chunk_pattern ${today})
+
+       # Enable extglob for the use of chunk_pattern
+       shopt -s extglob
 
        # Validate that only 3 chunks are present
        nb_chunk=$(ls -A $local_path | wc -l)
@@ -87,6 +103,7 @@ function validate_test_chunks ()
        if test $per_pid = 0; then
                validate_trace_empty $local_path/${chunk_pattern}-3
        fi
+       shopt -u extglob
 }
 
 function rotate_timer_test ()
@@ -116,13 +133,12 @@ function rotate_timer_test ()
        stop_lttng_tracing_ok $SESSION_NAME
        destroy_lttng_session_ok $SESSION_NAME
 
-       now=$(date +%Y%m%d)
-       test $today = $now
-       ok $? "Date did not change during the test"
-
        # Make sure the 10 first chunks are valid empty traces
        i=1
-       set_chunk_pattern
+       local chunk_pattern=$(get_chunk_pattern ${today})
+
+       # Enable extglob for the use of chunk_pattern
+       shopt -s extglob
 
        # In a per-pid setup, only the first chunk is a valid trace, the other
        # chunks should be empty folders
@@ -140,4 +156,5 @@ function rotate_timer_test ()
                        i=$(($i+1))
                done
        fi
+       shopt -u extglob
 }
index 143bfe0eab760880e5546290593870394b178dbc..d7f04bed0275293d6b9b8ba5fff84652a4256d61 100755 (executable)
@@ -22,7 +22,7 @@ EVENT_NAME="lttng_test_filter_event"
 
 TRACE_PATH=$(mktemp -d)
 
-NUM_TESTS=68
+NUM_TESTS=64
 
 source $TESTDIR/utils/utils.sh
 source $CURDIR/rotate_utils.sh
@@ -48,14 +48,6 @@ function rotate_kernel_test ()
 
        destroy_lttng_session_ok $SESSION_NAME
 
-       # The tests on the chunk folder rely on the date staying the same during
-       # the duration of the test, if this fail we will now why the other checks
-       # fail afterwards. There is a short window of time where an automated test
-       # could fail because of that.
-       now=$(date +%Y%m%d)
-       test $today = $now
-       ok $? "Date did not change during the test"
-
        validate_test_chunks $local_path $today kernel kernel 0
 }
 
index 08a140d9e3ac76d80a3e52c324ad2a410a0a1295..69bc18e1c5864a29729c3fe5a8d4b973e832571a 100755 (executable)
@@ -27,7 +27,7 @@ EVENT_NAME="tp:tptest"
 
 TRACE_PATH=$(mktemp -d)
 
-NUM_TESTS=150
+NUM_TESTS=142
 
 source $TESTDIR/utils/utils.sh
 source $CURDIR/rotate_utils.sh
@@ -66,14 +66,6 @@ function rotate_ust_test ()
 
        destroy_lttng_session_ok $SESSION_NAME
 
-       # The tests on the chunk folder rely on the date staying the same during
-       # the duration of the test, if this fail we will now why the other checks
-       # fail afterwards. There is a short window of time where an automated test
-       # could fail because of that.
-       now=$(date +%Y%m%d)
-       test $today = $now
-       ok $? "Date did not change during the test"
-
        validate_test_chunks "${local_path}" $today $app_path ust $per_pid
 }
 
This page took 0.026964 seconds and 4 git commands to generate.