71ec8684098c002ec7fa041c0ab3d1ccd2d03dd9
[babeltrace.git] / tests / cli / test_packet_seq_num
1 #!/bin/bash
2 #
3 # Copyright (C) 2015 Julien Desfossez <jdesfossez@efficios.com>
4 #
5 # This program is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License, version 2 only, as
7 # published by the Free Software Foundation.
8 #
9 # This program is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 # more details.
13 #
14 # You should have received a copy of the GNU General Public License along with
15 # this program; if not, write to the Free Software Foundation, Inc., 51
16 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18 SH_TAP=1
19
20 if [ "x${BT_TESTS_SRCDIR:-}" != "x" ]; then
21 UTILSSH="$BT_TESTS_SRCDIR/utils/utils.sh"
22 else
23 UTILSSH="$(dirname "$0")/../utils/utils.sh"
24 fi
25
26 # shellcheck source=../utils/utils.sh
27 source "$UTILSSH"
28
29 NUM_TESTS=10
30
31 plan_tests $NUM_TESTS
32
33 test_no_lost() {
34 local trace=$1
35
36 "${BT_TESTS_BT2_BIN}" "$trace" >/dev/null 2>&1
37 ok $? "Trace parses"
38 "${BT_TESTS_BT2_BIN}" "$trace" 2>&1 >/dev/null | "${BT_TESTS_GREP_BIN}" "\[warning\] Tracer lost"
39 if test $? = 0; then
40 fail 1 "Should not find any lost events"
41 else
42 ok 0 "No events lost"
43 fi
44 }
45
46 test_lost() {
47 local trace=$1
48 local expectedcountstr=$2
49
50 "${BT_TESTS_BT2_BIN}" "$trace" >/dev/null 2>&1
51 ok $? "Trace parses"
52
53 # Convert warnings like:
54 # WARNING: Tracer discarded 2 trace packets between ....
55 # WARNING: Tracer discarded 3 trace packets between ....
56 # into "2,3" and make sure it matches the expected result
57 "${BT_TESTS_BT2_BIN}" "$trace" 2>&1 >/dev/null | "${BT_TESTS_GREP_BIN}" "WARNING: Tracer discarded" \
58 | cut -d" " -f4 | tr "\n" "," | "${BT_TESTS_SED_BIN}" "s/.$//" | \
59 "${BT_TESTS_GREP_BIN}" "$expectedcountstr" >/dev/null
60 ok $? "Lost events string matches $expectedcountstr"
61
62 }
63
64 diag "Test the packet_seq_num validation"
65
66 diag "No packet lost"
67 test_no_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/no_lost"
68
69 diag "No packet lost, packet_seq_num not starting at 0"
70 test_no_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/no_lost_not_starting_at_0"
71
72 diag "1 stream, 2 packets lost before the last packet"
73 test_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/2_lost_before_last" "2"
74
75 diag "2 streams, packets lost in one of them"
76 test_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/2_streams_lost_in_1" "2"
77
78 diag "2 streams, packets lost in both"
79 test_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/2_streams_lost_in_2" "2,3,1"
This page took 0.031942 seconds and 4 git commands to generate.