46b97f4433159ac7b8f449310f9edf82ec6c1aec
[lttng-tools.git] / tests / ust / before-after / run
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="UST tracer - Start tracing before and after execution"
18
19 CURDIR=$(dirname $0)/
20 TESTDIR=$CURDIR/../..
21 NR_ITER=100
22 SESSION_NAME="per-session"
23 EVENT_NAME="ust_gen_nevents:tptest"
24
25 source $TESTDIR/utils.sh
26
27 print_test_banner "$TEST_DESC"
28
29 if [ ! -x "$CURDIR/gen-nevents" ]; then
30 echo -e "No UST nevents binary detected. Passing."
31 exit 0
32 fi
33
34 # MUST set TESTDIR before calling those functions
35
36 test_before_apps() {
37 local out
38
39 # BEFORE application is spawned
40 create_lttng_session $SESSION_NAME $TRACE_PATH
41 enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
42 start_lttng_tracing $SESSION_NAME
43 # Start test
44 echo -n "Starting application... "
45 ./$CURDIR/gen-nevents $NR_ITER
46 echo -n "Ended "
47 print_ok
48 stop_lttng_tracing $SESSION_NAME
49 destroy_lttng_session $SESSION_NAME
50
51 trace_matches $EVENT_NAME $NR_ITER $TRACE_PATH
52
53 return $?
54 }
55
56 test_after_apps() {
57 local out
58
59 echo -n "Starting application... "
60 ./$CURDIR/gen-nevents 100 &
61 print_ok
62
63 # BEFORE application is spawned
64 create_lttng_session $SESSION_NAME $TRACE_PATH
65 enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
66 start_lttng_tracing $SESSION_NAME
67
68 # At least hit one event
69 sleep 2
70
71 stop_lttng_tracing $SESSION_NAME
72 destroy_lttng_session $SESSION_NAME
73
74 out=$(babeltrace $TRACE_PATH | grep $EVENT_NAME | wc -l)
75 if [ $out -eq 0 ]; then
76 echo -n "No event found. Suppose to have at least one... "
77 print_fail
78 out=1
79 else
80 echo -n "Found $out event(s). Coherent... "
81 print_ok
82 out=0
83 fi
84
85 return $out
86 }
87
88 # MUST set TESTDIR before calling those functions
89
90 start_lttng_sessiond
91
92 echo ""
93 echo "=== Start application BEFORE tracing was started ==="
94
95 TRACE_PATH=$(mktemp -d)
96
97 test_before_apps
98 out=$?
99 if [ $out -ne 0 ]; then
100 stop_lttng_sessiond
101 exit $out
102 fi
103
104 rm -rf $TRACE_PATH
105
106 echo ""
107 echo "=== Start application AFTER tracing was started ==="
108
109 TRACE_PATH=$(mktemp -d)
110
111 test_after_apps
112 out=$?
113 if [ $out -ne 0 ]; then
114 stop_lttng_sessiond
115 exit $out
116 fi
117
118 stop_lttng_sessiond
119
120 rm -rf $TRACE_PATH
This page took 0.031463 seconds and 3 git commands to generate.