Tests: Handle rotations happening on two separate days during testing
[lttng-tools.git] / tests / regression / tools / rotation / rotate_utils.sh
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
 }
This page took 0.02381 seconds and 4 git commands to generate.