Fix: mark generated python bindings files as nodist
[lttng-tools.git] / tests / tools / streaming / run-kernel
1 #!/bin/bash
2 #
3 # Copyright (C) - 2012 David Goulet <dgoulet@efficios.com>
4 #
5 # This library is free software; you can redistribute it and/or modify it under
6 # the terms of the GNU Lesser General Public License as published by the Free
7 # Software Foundation; version 2.1 of the License.
8 #
9 # This library is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 # details.
13 #
14 # You should have received a copy of the GNU Lesser General Public License
15 # along with this library; if not, write to the Free Software Foundation, Inc.,
16 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 TEST_DESC="Streaming - Kernel tracing"
18
19 CURDIR=$(dirname $0)/
20 TESTDIR=$CURDIR/../..
21 EVENT_NAME="sched_switch"
22 PID_RELAYD=0
23 SESSION_NAME=""
24
25 TRACE_PATH=$(mktemp -d)
26
27 source $TESTDIR/utils.sh
28
29 print_test_banner "$TEST_DESC"
30
31 if [ "$(id -u)" != "0" ]; then
32 echo "This test must be running as root. Aborting"
33 # Exit status 0 so the tests can continue
34 exit 0
35 fi
36
37 # LTTng kernel modules check
38 out=`ls /lib/modules/$(uname -r)/extra | grep lttng`
39 if [ -z "$out" ]; then
40 echo "LTTng modules not detected. Aborting kernel tests!"
41 echo ""
42 # Exit status 0 so the tests can continue
43 exit 0
44 fi
45
46 function lttng_create_session_uri
47 {
48 echo -n "Creating session $SESSION_NAME... "
49 # Create session with default path
50 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $SESSION_NAME -U net://localhost >/dev/null 2>&1
51 if [ $? -eq 1 ]; then
52 print_fail
53 return 1
54 else
55 print_ok
56 fi
57 }
58
59 function test_kernel_before_start ()
60 {
61 echo -e "\n=== Testing kernel streaming with event enable BEFORE start\n"
62 lttng_create_session_uri
63 lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME
64 start_lttng_tracing $SESSION_NAME
65 # Give a second
66 sleep 1
67 stop_lttng_tracing $SESSION_NAME
68 destroy_lttng_session $SESSION_NAME
69
70 # We can not predict _yet_ when the trace is available so we have to do a
71 # arbitratry sleep to validate the trace.
72 echo -n "Waiting 3 seconds for the trace to be written on disk "
73 for i in `seq 1 3`; do
74 echo -n "."
75 sleep 1
76 done
77 echo ""
78 }
79
80 # Deactivated since this feature is not yet available where we can enable
81 # an event AFTERE tracing has started.
82 function test_kernel_after_start ()
83 {
84 echo -e "\n=== Testing kernel streaming with event enable AFTER start\n"
85 lttng_create_session_uri
86 start_lttng_tracing $SESSION_NAME
87 lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME
88 # Give a second
89 sleep 1
90 stop_lttng_tracing $SESSION_NAME
91 destroy_lttng_session $SESSION_NAME
92 }
93
94 start_lttng_sessiond
95 start_lttng_relayd "-o $TRACE_PATH"
96
97 tests=( test_kernel_before_start )
98
99 for fct_test in ${tests[@]};
100 do
101 SESSION_NAME=$(randstring 16 0)
102 ${fct_test}
103
104 # Validate test
105 validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME*
106 if [ $? -eq 0 ]; then
107 # Only delete if successful
108 rm -rf $TRACE_PATH
109 else
110 break
111 fi
112 done
113
114 echo ""
115 stop_lttng_sessiond
116 stop_lttng_relayd
117
118
119 exit $out
This page took 0.031769 seconds and 4 git commands to generate.