4b958dff8ee6761d336b94beb248d2fd9a6a7078
[lttng-tools.git] / tests / regression / tools / live / test_kernel
1 #!/bin/bash
2 #
3 # Copyright (C) - 2013 Julien Desfossez <julien.desfossez@efficios.com>
4 # David Goulet <dgoulet@efficios.com>
5 #
6 # This library is free software; you can redistribute it and/or modify it under
7 # the terms of the GNU Lesser General Public License as published by the Free
8 # Software Foundation; version 2.1 of the License.
9 #
10 # This library is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13 # details.
14 #
15 # You should have received a copy of the GNU Lesser General Public License
16 # along with this library; if not, write to the Free Software Foundation, Inc.,
17 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
19 TEST_DESC="Live - Kernel space tracing"
20
21 CURDIR=$(dirname $0)/
22 TESTDIR=$CURDIR/../../../
23 SESSIOND_BIN="lttng-sessiond"
24 RELAYD_BIN="lttng-relayd"
25 LTTNG_BIN="lttng"
26 BABELTRACE_BIN="babeltrace"
27 NR_ITER=1
28 NR_USEC_WAIT=1
29 DELAY_USEC=2000000
30
31 SESSION_NAME="live"
32 EVENT_NAME="sched_switch"
33
34 TRACE_PATH=$(mktemp -d)
35
36 DIR=$(readlink -f $TESTDIR)
37
38 source $TESTDIR/utils/utils.sh
39
40 function setup_live_tracing()
41 {
42 # Create session with default path
43 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $SESSION_NAME --live $DELAY_USEC \
44 -U net://localhost >/dev/null 2>&1
45
46 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$EVENT_NAME" -s $SESSION_NAME -k >/dev/null 2>&1
47 $TESTDIR/../src/bin/lttng/$LTTNG_BIN start $SESSION_NAME >/dev/null 2>&1
48 }
49
50 function clean_live_tracing()
51 {
52 $TESTDIR/../src/bin/lttng/$LTTNG_BIN stop $SESSION_NAME >/dev/null 2>&1
53 $TESTDIR/../src/bin/lttng/$LTTNG_BIN destroy $SESSION_NAME >/dev/null 2>&1
54 rm -rf $TRACE_PATH
55 }
56
57 # Need root access for kernel tracing.
58 if [ "$(id -u)" == "0" ]; then
59 isroot=1
60 else
61 echo "Root access is needed. Skipping all tests."
62 exit 0
63 fi
64
65 if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
66 $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --quiet --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
67 if [ $? -eq 1 ]; then
68 echo "Fail to start lttng-sessiond"
69 exit 1
70 fi
71 fi
72
73 opt="--background -o $TRACE_PATH"
74 if [ -z $(pidof lt-$RELAYD_BIN) ]; then
75 $DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt >/dev/null 2>&1
76 if [ $? -eq 1 ]; then
77 echo "Fail to start lttng-relayd (opt: $opt)"
78 return 1
79 fi
80 fi
81
82 setup_live_tracing
83
84 # Start the live test
85 $TESTDIR/regression/tools/live/live_test
86
87 clean_live_tracing
88
89 # Kill the relayd
90 PID_RELAYD=`pidof lt-$RELAYD_BIN`
91 kill $PID_RELAYD
92 if [ $? -eq 1 ]; then
93 echo "Kill lttng-relayd (pid: $PID_RELAYD)"
94 exit 1
95 else
96 out=1
97 while [ -n "$out" ]; do
98 out=$(pidof lt-$RELAYD_BIN)
99 sleep 0.5
100 done
101 fi
102
103 # Kill the sessiond
104 PID_SESSIOND=`pidof lt-$SESSIOND_BIN`
105 kill $PID_SESSIOND
106 if [ $? -eq 1 ]; then
107 echo "Kill sessiond daemon"
108 exit 1
109 else
110 out=1
111 while [ -n "$out" ]; do
112 out=$(pidof lt-$SESSIOND_BIN)
113 sleep 0.5
114 done
115 fi
This page took 0.033437 seconds and 3 git commands to generate.