Commit | Line | Data |
---|---|---|
e02b109b DG |
1 | #!/bin/bash |
2 | # | |
9d16b343 | 3 | # Copyright (C) 2014 David Goulet <dgoulet@efficios.com> |
e02b109b | 4 | # |
9d16b343 | 5 | # SPDX-License-Identifier: LGPL-2.1-only |
e02b109b DG |
6 | |
7 | TEST_DESC="Save session(s)" | |
8 | ||
9 | CURDIR=$(dirname $0)/ | |
10 | TESTDIR=$CURDIR/../../../ | |
e02b109b DG |
11 | |
12 | SESSION_NAME="save-42" | |
13 | CHANNEL_NAME="chan-save" | |
14 | EVENT_NAME="tp:tptest" | |
15 | ||
16 | DIR=$(readlink -f $TESTDIR) | |
17 | ||
722f854b | 18 | NUM_TESTS=41 |
e02b109b DG |
19 | |
20 | source $TESTDIR/utils/utils.sh | |
21 | ||
22 | # MUST set TESTDIR before calling those functions | |
23 | plan_tests $NUM_TESTS | |
24 | ||
25 | print_test_banner "$TEST_DESC" | |
26 | ||
27 | # Expected to fail | |
28 | function save_lttng_fail() | |
29 | { | |
30 | local sess_name=$1 | |
31 | local opts=$2 | |
32 | ||
33 | $TESTDIR/../src/bin/lttng/$LTTNG_BIN save $sess_name $opts >/dev/null 2>&1 | |
34 | if [ $? -ne 0 ]; then | |
35 | ok 0 "Session failed to be saved. Expected!" | |
36 | else | |
37 | ok 1 "Session has been saved. NOT expected!" | |
38 | fi | |
39 | } | |
40 | ||
41 | function is_session_saved() | |
42 | { | |
43 | local path=$1 | |
44 | local name=$2 | |
45 | ||
46 | [ -f "$path/$name.lttng" ]; | |
47 | ok $? "Session $name.lttng file found!" | |
48 | } | |
49 | ||
50 | function test_basic_save() | |
51 | { | |
52 | diag "Test basic save" | |
53 | ||
bf6ae429 | 54 | create_lttng_session_ok $SESSION_NAME $TRACE_PATH |
827caf52 | 55 | enable_ust_lttng_channel_ok $SESSION_NAME $CHANNEL_NAME |
c4926bb5 | 56 | enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME $CHANNEL_NAME |
722f854b | 57 | lttng_track_ok "-p 666 -u -s $SESSION_NAME" |
e02b109b DG |
58 | |
59 | lttng_save $SESSION_NAME "-o $TRACE_PATH" | |
60 | ||
61 | is_session_saved $TRACE_PATH $SESSION_NAME | |
62 | ||
67b4c664 | 63 | destroy_lttng_session_ok $SESSION_NAME |
e02b109b DG |
64 | } |
65 | ||
66 | function test_basic_save_all() | |
67 | { | |
68 | diag "Test basic save all" | |
69 | ||
bf6ae429 JR |
70 | create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH |
71 | create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH | |
72 | create_lttng_session_ok $SESSION_NAME-3 $TRACE_PATH | |
e02b109b | 73 | |
827caf52 JR |
74 | enable_ust_lttng_channel_ok $SESSION_NAME-1 $CHANNEL_NAME |
75 | enable_ust_lttng_channel_ok $SESSION_NAME-2 $CHANNEL_NAME | |
76 | enable_ust_lttng_channel_ok $SESSION_NAME-3 $CHANNEL_NAME | |
e02b109b | 77 | |
c4926bb5 JR |
78 | enable_ust_lttng_event_ok $SESSION_NAME-1 $EVENT_NAME $CHANNEL_NAME |
79 | enable_ust_lttng_event_ok $SESSION_NAME-2 $EVENT_NAME $CHANNEL_NAME | |
80 | enable_ust_lttng_event_ok $SESSION_NAME-3 $EVENT_NAME $CHANNEL_NAME | |
e02b109b | 81 | |
722f854b JR |
82 | lttng_track_ok "-p 666 -u -s $SESSION_NAME-1" |
83 | lttng_track_ok "-p 666 -u -s $SESSION_NAME-2" | |
84 | lttng_track_ok "-p 666 -u -s $SESSION_NAME-3" | |
85 | ||
e02b109b DG |
86 | lttng_save "" "-a -o $TRACE_PATH" |
87 | ||
88 | is_session_saved $TRACE_PATH $SESSION_NAME-1 | |
89 | is_session_saved $TRACE_PATH $SESSION_NAME-2 | |
90 | is_session_saved $TRACE_PATH $SESSION_NAME-3 | |
91 | ||
67b4c664 JR |
92 | destroy_lttng_session_ok $SESSION_NAME-1 |
93 | destroy_lttng_session_ok $SESSION_NAME-2 | |
94 | destroy_lttng_session_ok $SESSION_NAME-3 | |
e02b109b DG |
95 | } |
96 | ||
97 | function test_overwrite() | |
98 | { | |
99 | diag "Test overwrite session file" | |
100 | ||
bf6ae429 | 101 | create_lttng_session_ok $SESSION_NAME $TRACE_PATH |
827caf52 | 102 | enable_ust_lttng_channel_ok $SESSION_NAME $CHANNEL_NAME |
c4926bb5 | 103 | enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME $CHANNEL_NAME |
e02b109b DG |
104 | |
105 | lttng_save $SESSION_NAME "-o $TRACE_PATH" | |
106 | ||
107 | is_session_saved $TRACE_PATH $SESSION_NAME | |
108 | ||
67b4c664 | 109 | destroy_lttng_session_ok $SESSION_NAME |
e02b109b DG |
110 | |
111 | # Create a new session with same name so we can force the overwrite | |
bf6ae429 | 112 | create_lttng_session_ok $SESSION_NAME $TRACE_PATH |
827caf52 | 113 | enable_ust_lttng_channel_ok $SESSION_NAME $CHANNEL_NAME |
c4926bb5 | 114 | enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME $CHANNEL_NAME |
e02b109b DG |
115 | |
116 | # This one MUST fail | |
117 | save_lttng_fail $SESSION_NAME "-o $TRACE_PATH" | |
118 | ||
119 | # This one MUST succeed | |
120 | lttng_save $SESSION_NAME "-f -o $TRACE_PATH" | |
121 | ||
122 | is_session_saved $TRACE_PATH $SESSION_NAME | |
123 | ||
67b4c664 | 124 | destroy_lttng_session_ok $SESSION_NAME |
e02b109b DG |
125 | } |
126 | ||
127 | start_lttng_sessiond | |
128 | ||
129 | TESTS=( | |
130 | test_basic_save | |
131 | test_basic_save_all | |
132 | test_overwrite | |
133 | ) | |
134 | ||
135 | for fct_test in ${TESTS[@]}; | |
136 | do | |
7539dcec | 137 | TRACE_PATH=$(mktemp --tmpdir -d tmp.test_save_trace_path.XXXXXX) |
e02b109b DG |
138 | |
139 | ${fct_test} | |
140 | if [ $? -ne 0 ]; then | |
141 | break; | |
142 | fi | |
143 | # Only delete if successful | |
edb62ef5 | 144 | rm -rf $TRACE_PATH |
e02b109b DG |
145 | done |
146 | ||
147 | stop_lttng_sessiond |