trace = tc()
stream = trace.create_stream(sc)
- # Test with and without packets, once packets are optional.
- packet = stream.create_packet()
+ if params['with-packet-msgs']:
+ packet = stream.create_packet()
if params['with-stream-msgs-cs']:
sb_msg = self._create_stream_beginning_message(stream, 100)
else:
sb_msg = self._create_stream_beginning_message(stream)
- ev_msg1 = self._create_event_message(ec1, packet, 300)
- ev_msg2 = self._create_event_message(ec2, packet, 400)
+ parent = packet if params['with-packet-msgs'] else stream
+
+ ev_msg1 = self._create_event_message(ec1, parent, 300)
+ ev_msg2 = self._create_event_message(ec2, parent, 400)
if params['with-stream-msgs-cs']:
se_msg = self._create_stream_end_message(stream, 1000)
else:
se_msg = self._create_stream_end_message(stream)
- self._msgs = [
- sb_msg,
- self._create_packet_beginning_message(packet, 200),
- ev_msg1,
- ev_msg2,
- self._create_packet_end_message(packet, 900),
- se_msg,
- ]
+ self._msgs = []
+
+ self._msgs.append(sb_msg)
+
+ if params['with-packet-msgs']:
+ self._msgs.append(self._create_packet_beginning_message(packet, 200))
+
+ self._msgs.append(ev_msg1)
+ self._msgs.append(ev_msg2)
+
+ if params['with-packet-msgs']:
+ self._msgs.append(self._create_packet_end_message(packet, 900))
+
+ self._msgs.append(se_msg)
+
self._at = 0
config.can_seek_forward = True
def __init__(self, config, params, obj):
tc = self._create_trace_class()
+ with_packets = bool(params['with-packet-msgs'])
+
# Use a clock class with an offset, so we can test with --begin or --end
# smaller than this offset (in other words, a time that it's not
# possible to represent with this clock class).
cc = self._create_clock_class(frequency=1, offset=bt2.ClockClassOffset(10000))
sc = tc.create_stream_class(
default_clock_class=cc,
- supports_packets=True,
- packets_have_beginning_default_clock_snapshot=True,
- packets_have_end_default_clock_snapshot=True,
+ supports_packets=with_packets,
+ packets_have_beginning_default_clock_snapshot=with_packets,
+ packets_have_end_default_clock_snapshot=with_packets,
)
ec1 = sc.create_event_class(name='event 1')
ec2 = sc.create_event_class(name='event 2')
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 is set to "true" or "false" by the tests.
+ # 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"
)
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="$test_name, with --begin=$begin_time"
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"
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"
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.