X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=tests%2Fplugins%2Fflt.utils.trimmer%2Ftest_trimming;h=f46fe31f00d4d22d7a498aa0e1b177029d126eb2;hb=75e396f6b20bdf52c76a3c7312e7fb815ac1e5e9;hp=1dbb72e7229183b058b5e04cf643dd90344a64b8;hpb=53cc240b958d74a423d0f22752c080f4e3a986db;p=babeltrace.git diff --git a/tests/plugins/flt.utils.trimmer/test_trimming b/tests/plugins/flt.utils.trimmer/test_trimming index 1dbb72e7..f46fe31f 100755 --- a/tests/plugins/flt.utils.trimmer/test_trimming +++ b/tests/plugins/flt.utils.trimmer/test_trimming @@ -1,72 +1,81 @@ #!/bin/bash # -# Copyright (C) 2019 Simon Marchi -# -# 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 # -# 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. SH_TAP=1 -if [ "x${BT_TESTS_SRCDIR:-}" != "x" ]; then +if [ -n "${BT_TESTS_SRCDIR:-}" ]; then UTILSSH="$BT_TESTS_SRCDIR/utils/utils.sh" else UTILSSH="$(dirname "$0")/../../utils/utils.sh" fi -# shellcheck source=../../../utils/utils.sh +# shellcheck source=../../utils/utils.sh source "$UTILSSH" -data_dir="$BT_TESTS_SRCDIR/data/plugins/flt.utils.trimmer" -temp_expected=$(mktemp) +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 - begin="--begin=$begin_time" - test_name="with $begin" + local_args+=("--begin=$begin_time") + test_name="$test_name, with --begin=$begin_time" else - begin="" - test_name="without --begin" + test_name="$test_name, without --begin" fi if [ -n "$end_time" ]; then - end="--end=$end_time" - test_name="$test_name, with $end" + local_args+=("--end=$end_time") + test_name="$test_name, with --end=$end_time" else - end="" test_name="$test_name, without --end" fi - # with_stream_msgs_cs is set to "true" or "false" by the tests. - - bt_diff_cli "$temp_expected" -c src.test-trimmer.TheSourceOfAllEvil -p with-stream-msgs-cs=$with_stream_msgs_cs -c sink.text.details --params=compact=true,with-metadata=false --plugin-path=$data_dir $begin $end + 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_expected + cat <<- 'END' > "$temp_stdout_expected" [100 10,100,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -77,7 +86,7 @@ function test_with_stream_msg_cs { run_test "" "" # Trim begin at a time before what the clock class can represent - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [100 10,100,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -88,7 +97,7 @@ function test_with_stream_msg_cs { run_test 50 "" # Trim begin before stream beginning - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [100 10,100,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -99,7 +108,7 @@ function test_with_stream_msg_cs { run_test 10050 "" # Trim begin before packet beginning - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [150 10,150,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -110,7 +119,7 @@ function test_with_stream_msg_cs { run_test 10150 "" # Trim begin before first event - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [250 10,250,000,000,000] {0 0 0} Stream beginning [250 10,250,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -121,7 +130,7 @@ function test_with_stream_msg_cs { run_test 10250 "" # Trim begin before second event - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [350 10,350,000,000,000] {0 0 0} Stream beginning [350 10,350,000,000,000] {0 0 0} Packet beginning [400 10,400,000,000,000] {0 0 0} Event `event 2` (1) @@ -132,7 +141,7 @@ function test_with_stream_msg_cs { run_test 10350 "" # Trim begin before packet end - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [850 10,850,000,000,000] {0 0 0} Stream beginning [850 10,850,000,000,000] {0 0 0} Packet beginning [900 10,900,000,000,000] {0 0 0} Packet end @@ -142,13 +151,13 @@ function test_with_stream_msg_cs { run_test 10850 "" # Trim begin after everything - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" END run_test 11050 "" # Trim end after stream end - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [100 10,100,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -160,7 +169,7 @@ function test_with_stream_msg_cs { run_test "" 11050 # Trim end after packet end - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [100 10,100,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -172,7 +181,7 @@ function test_with_stream_msg_cs { run_test "" 10950 # Trim end after second event - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [100 10,100,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -184,7 +193,7 @@ function test_with_stream_msg_cs { run_test "" 10450 # Trim end after first event - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [100 10,100,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -195,7 +204,7 @@ function test_with_stream_msg_cs { run_test "" 10350 # Trim end after packet beginning - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [100 10,100,000,000,000] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [250 10,250,000,000,000] {0 0 0} Packet end @@ -205,7 +214,7 @@ function test_with_stream_msg_cs { run_test "" 10250 # Trim end after stream beginning - cat <<- 'END' > $temp_expected + 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 @@ -213,23 +222,24 @@ function test_with_stream_msg_cs { run_test "" 10150 # Trim end before everything - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" END run_test "" 10050 # Trim end at a time before what the clock class can represent - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" END 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_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -240,7 +250,7 @@ function test_without_stream_msg_cs { run_test "" "" # Trim begin at a time before what the clock class can represent - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -251,7 +261,7 @@ function test_without_stream_msg_cs { run_test 50 "" # Trim begin before stream beginning - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -262,7 +272,7 @@ function test_without_stream_msg_cs { run_test 10050 "" # Trim begin before packet beginning - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -273,7 +283,7 @@ function test_without_stream_msg_cs { run_test 10150 "" # Trim begin before first event - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [250 10,250,000,000,000] {0 0 0} Stream beginning [250 10,250,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -284,7 +294,7 @@ function test_without_stream_msg_cs { run_test 10250 "" # Trim begin before second event - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [350 10,350,000,000,000] {0 0 0} Stream beginning [350 10,350,000,000,000] {0 0 0} Packet beginning [400 10,400,000,000,000] {0 0 0} Event `event 2` (1) @@ -295,7 +305,7 @@ function test_without_stream_msg_cs { run_test 10350 "" # Trim begin before packet end - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [850 10,850,000,000,000] {0 0 0} Stream beginning [850 10,850,000,000,000] {0 0 0} Packet beginning [900 10,900,000,000,000] {0 0 0} Packet end @@ -305,13 +315,13 @@ function test_without_stream_msg_cs { run_test 10850 "" # Trim begin after everything - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" END run_test 11050 "" # Trim end after stream end - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -323,7 +333,7 @@ function test_without_stream_msg_cs { run_test "" 11050 # Trim end after packet end - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -335,7 +345,7 @@ function test_without_stream_msg_cs { run_test "" 10950 # Trim end after second event - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -347,7 +357,7 @@ function test_without_stream_msg_cs { run_test "" 10450 # Trim end after first event - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [300 10,300,000,000,000] {0 0 0} Event `event 1` (0) @@ -358,7 +368,7 @@ function test_without_stream_msg_cs { run_test "" 10350 # Trim end after packet beginning - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [200 10,200,000,000,000] {0 0 0} Packet beginning [250 10,250,000,000,000] {0 0 0} Packet end @@ -368,7 +378,7 @@ function test_without_stream_msg_cs { run_test "" 10250 # Trim end after stream beginning - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [Unknown] {0 0 0} Stream end END @@ -376,7 +386,7 @@ function test_without_stream_msg_cs { run_test "" 10150 # Trim end before everything - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" [Unknown] {0 0 0} Stream beginning [Unknown] {0 0 0} Stream end END @@ -384,7 +394,220 @@ function test_without_stream_msg_cs { run_test "" 10050 # Trim end at a time before what the clock class can represent - cat <<- 'END' > $temp_expected + cat <<- 'END' > "$temp_stdout_expected" + [Unknown] {0 0 0} Stream beginning + [Unknown] {0 0 0} Stream end + END + + run_test "" 50 +} + +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 @@ -392,7 +615,11 @@ function test_without_stream_msg_cs { run_test "" 50 } -test_with_stream_msg_cs -test_without_stream_msg_cs +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 -rm -f "$temp_expected" +# Do not `rm` $temp_stderr_expected because it's set to `/dev/null` right now +# and that would print an error. +rm -f "$temp_stdout_expected"