tests: Move to kernel style SPDX license identifiers
[lttng-tools.git] / tests / regression / tools / save-load / test_save
CommitLineData
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
7TEST_DESC="Save session(s)"
8
9CURDIR=$(dirname $0)/
10TESTDIR=$CURDIR/../../../
e02b109b
DG
11
12SESSION_NAME="save-42"
13CHANNEL_NAME="chan-save"
14EVENT_NAME="tp:tptest"
15
16DIR=$(readlink -f $TESTDIR)
17
722f854b 18NUM_TESTS=41
e02b109b
DG
19
20source $TESTDIR/utils/utils.sh
21
22# MUST set TESTDIR before calling those functions
23plan_tests $NUM_TESTS
24
25print_test_banner "$TEST_DESC"
26
27# Expected to fail
28function 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
41function 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
50function 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
66function 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
97function 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
127start_lttng_sessiond
128
129TESTS=(
130 test_basic_save
131 test_basic_save_all
132 test_overwrite
133)
134
135for fct_test in ${TESTS[@]};
136do
137 TRACE_PATH=$(mktemp -d)
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
145done
146
147stop_lttng_sessiond
This page took 0.038953 seconds and 4 git commands to generate.