Move to kernel style SPDX license identifiers
[babeltrace.git] / tests / plugins / flt.utils.trimmer / test_trimming
index b1e267a0894ff891c20d00a5345b498b5bb5bfcc..f7ae8cecc595a4f3fafd06dc08624c6610a60f33 100755 (executable)
@@ -1,20 +1,9 @@
 #!/bin/bash
 #
-# Copyright (C) 2019 Simon Marchi <simon.marchi@efficios.com>
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; only version 2
-# of the License.
+# 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.
+# Copyright (C) 2019 Simon Marchi <simon.marchi@efficios.com>
 #
-# 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 # This file tests what happens when we trim at different points in the message
 # flow.
@@ -34,25 +23,40 @@ data_dir="$BT_TESTS_DATADIR/plugins/flt.utils.trimmer"
 temp_stdout_expected=$(mktemp)
 temp_stderr_expected="/dev/null"
 
-plan_tests 32
+plan_tests 56
 
 function run_test
 {
        local begin_time="$1"
        local end_time="$2"
+       # with_stream_msgs_cs and with_packet_msgs are set to "true" or "false"
+       # by the tests.
        local local_args=(
                "--plugin-path" "$data_dir"
                "-c" "src.test-trimmer.TheSourceOfAllEvil"
                "-p" "with-stream-msgs-cs=$with_stream_msgs_cs"
+               "-p" "with-packet-msgs=$with_packet_msgs"
                "-c" "sink.text.details"
                "--params=compact=true,with-metadata=false"
        )
 
+       if [ "$with_stream_msgs_cs" = "true" ]; then
+               test_name="with stream message clock snapshots"
+       else
+               test_name="without stream message clock snapshots"
+       fi
+
+       if [ "$with_packet_msgs" = "true" ]; then
+               test_name="$test_name, with packet messages"
+       else
+               test_name="$test_name, without packet messages"
+       fi
+
        if [ -n "$begin_time" ]; then
                local_args+=("--begin=$begin_time")
-               test_name="with --begin=$begin_time"
+               test_name="$test_name, with --begin=$begin_time"
        else
-               test_name="without --begin"
+               test_name="$test_name, without --begin"
        fi
 
        if [ -n "$end_time" ]; then
@@ -62,14 +66,13 @@ function run_test
                test_name="$test_name, without --end"
        fi
 
-       # with_stream_msgs_cs is set to "true" or "false" by the tests.
-
        bt_diff_cli "$temp_stdout_expected" "$temp_stderr_expected" "${local_args[@]}"
        ok $? "$test_name"
 }
 
-function test_with_stream_msg_cs {
+function test_with_stream_msg_cs_with_packets {
        with_stream_msgs_cs="true"
+       with_packet_msgs="true"
 
        # Baseline (without trimming)
        cat <<- 'END' > "$temp_stdout_expected"
@@ -231,8 +234,9 @@ function test_with_stream_msg_cs {
        run_test "" 50
 }
 
-function test_without_stream_msg_cs {
+function test_without_stream_msg_cs_with_packets {
        with_stream_msgs_cs="false"
+       with_packet_msgs="true"
 
        # Baseline (without trimming)
        cat <<- 'END' > "$temp_stdout_expected"
@@ -398,8 +402,223 @@ function test_without_stream_msg_cs {
        run_test "" 50
 }
 
-test_with_stream_msg_cs
-test_without_stream_msg_cs
+function test_with_stream_msg_cs_without_packets {
+       with_stream_msgs_cs="true"
+       with_packet_msgs="false"
+
+       # Baseline (without trimming)
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [1000 11,000,000,000,000] {0 0 0} Stream end
+       END
+       run_test "" ""
+
+       # Trim begin at a time before what the clock class can represent
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [1000 11,000,000,000,000] {0 0 0} Stream end
+       END
+       run_test 50 ""
+
+       # Trim begin before stream beginning
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [1000 11,000,000,000,000] {0 0 0} Stream end
+       END
+       run_test 10050 ""
+
+       # Trim begin before first event
+       cat <<- 'END' > "$temp_stdout_expected"
+       [250 10,250,000,000,000] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [1000 11,000,000,000,000] {0 0 0} Stream end
+       END
+       run_test 10250 ""
+
+       # Trim begin before second event
+       cat <<- 'END' > "$temp_stdout_expected"
+       [350 10,350,000,000,000] {0 0 0} Stream beginning
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [1000 11,000,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test 10350 ""
+
+       # Trim begin before packet end
+       cat <<- 'END' > "$temp_stdout_expected"
+       [850 10,850,000,000,000] {0 0 0} Stream beginning
+       [1000 11,000,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test 10850 ""
+
+       # Trim begin after everything
+       cat <<- 'END' > "$temp_stdout_expected"
+       END
+
+       run_test 11050 ""
+
+       # Trim end after stream end
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [1000 11,000,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test "" 11050
+
+       # Trim end after packet end
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [950 10,950,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test "" 10950
+
+       # Trim end after second event
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [450 10,450,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test "" 10450
+
+       # Trim end after first event
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [350 10,350,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test "" 10350
+
+       # Trim end after packet beginning
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [250 10,250,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test "" 10250
+
+       # Trim end after stream beginning
+       cat <<- 'END' > "$temp_stdout_expected"
+       [100 10,100,000,000,000] {0 0 0} Stream beginning
+       [150 10,150,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test "" 10150
+
+       # Trim end before everything
+       cat <<- 'END' > "$temp_stdout_expected"
+       END
+
+       run_test "" 10050
+
+       # Trim end at a time before what the clock class can represent
+       cat <<- 'END' > "$temp_stdout_expected"
+       END
+
+       run_test "" 50
+}
+
+function test_without_stream_msg_cs_without_packets {
+       with_stream_msgs_cs="false"
+       with_packet_msgs="false"
+
+       # Baseline (without trimming)
+       cat <<- 'END' > "$temp_stdout_expected"
+       [Unknown] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [Unknown] {0 0 0} Stream end
+       END
+       run_test "" ""
+
+       # Trim begin at a time before what the clock class can represent
+       cat <<- 'END' > "$temp_stdout_expected"
+       [Unknown] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [Unknown] {0 0 0} Stream end
+       END
+       run_test 50 ""
+
+       # Trim begin before stream beginning
+       cat <<- 'END' > "$temp_stdout_expected"
+       [Unknown] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [Unknown] {0 0 0} Stream end
+       END
+       run_test 10050 ""
+
+       # Trim begin before second event
+       cat <<- 'END' > "$temp_stdout_expected"
+       [350 10,350,000,000,000] {0 0 0} Stream beginning
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [Unknown] {0 0 0} Stream end
+       END
+
+       run_test 10350 ""
+
+       # Trim begin after everything
+       cat <<- 'END' > "$temp_stdout_expected"
+       END
+
+       run_test 11050 ""
+
+       # Trim end after stream end
+       cat <<- 'END' > "$temp_stdout_expected"
+       [Unknown] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [400 10,400,000,000,000] {0 0 0} Event `event 2` (1)
+       [Unknown] {0 0 0} Stream end
+       END
+
+       run_test "" 11050
+
+       # Trim end after first event
+       cat <<- 'END' > "$temp_stdout_expected"
+       [Unknown] {0 0 0} Stream beginning
+       [300 10,300,000,000,000] {0 0 0} Event `event 1` (0)
+       [350 10,350,000,000,000] {0 0 0} Stream end
+       END
+
+       run_test "" 10350
+
+       # Trim end after stream beginning
+       cat <<- 'END' > "$temp_stdout_expected"
+       [Unknown] {0 0 0} Stream beginning
+       [Unknown] {0 0 0} Stream end
+       END
+
+       run_test "" 10150
+
+       # Trim end at a time before what the clock class can represent
+       cat <<- 'END' > "$temp_stdout_expected"
+       [Unknown] {0 0 0} Stream beginning
+       [Unknown] {0 0 0} Stream end
+       END
+
+       run_test "" 50
+}
+
+test_with_stream_msg_cs_with_packets
+test_without_stream_msg_cs_with_packets
+test_with_stream_msg_cs_without_packets
+test_without_stream_msg_cs_without_packets
 
 # Do not `rm` $temp_stderr_expected because it's set to `/dev/null` right now
 # and that would print an error.
This page took 0.028139 seconds and 4 git commands to generate.