Cleanup: tests: name all temporary files to better identify leakage
[lttng-tools.git] / tests / regression / ust / before-after / test_before_after
CommitLineData
b19155c0
DG
1#!/bin/bash
2#
9d16b343 3# Copyright (C) 2012 David Goulet <dgoulet@efficios.com>
b19155c0 4#
9d16b343
MJ
5# SPDX-License-Identifier: LGPL-2.1-only
6
c38b5107 7TEST_DESC="UST tracer - Start tracing before and after execution"
b19155c0
DG
8
9CURDIR=$(dirname $0)/
9ac429ef 10TESTDIR=$CURDIR/../../..
b19155c0 11NR_ITER=100
6cb45b17
CB
12NR_USEC_WAIT=100000
13TESTAPP_PATH="$TESTDIR/utils/testapp"
14TESTAPP_NAME="gen-ust-events"
15TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
b19155c0 16SESSION_NAME="per-session"
6cb45b17 17EVENT_NAME="tp:tptest"
f8ccb5c8 18NUM_TESTS=16
b19155c0 19
9ac429ef 20source $TESTDIR/utils/utils.sh
b19155c0 21
6cb45b17 22if [ ! -x "$TESTAPP_BIN" ]; then
f38839af 23 BAIL_OUT "No UST nevents binary detected."
b19155c0
DG
24fi
25
26# MUST set TESTDIR before calling those functions
27
4986e6a6
DG
28function test_before_apps()
29{
b19155c0 30 # BEFORE application is spawned
bf6ae429 31 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
c4926bb5 32 enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME
e563bbdb 33 start_lttng_tracing_ok $SESSION_NAME
f38839af 34
6c4a91d6 35 $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT &
c7613334 36 wait
4986e6a6 37 ok $? "Traced application stopped."
f38839af 38
96340a01 39 stop_lttng_tracing_ok $SESSION_NAME
67b4c664 40 destroy_lttng_session_ok $SESSION_NAME
b19155c0 41
d53addeb 42 trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
b19155c0
DG
43
44 return $?
45}
46
4986e6a6
DG
47function test_after_apps()
48{
b19155c0 49 local out
33e55711
FD
50 local file_sync_after_first=$(mktemp --tmpdir -u "tmp.${FUNCNAME[0]}_sync_after_first.XXXXXX")
51 local file_sync_before_last=$(mktemp --tmpdir -u "tmp.${FUNCNAME[0]}_sync_before_last.XXXXXX")
b19155c0 52
bf6ae429 53 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
c4926bb5 54 enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME
f8ccb5c8 55
6c4a91d6
MD
56 $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \
57 --sync-after-first-event ${file_sync_after_first} \
58 --sync-before-last-event ${file_sync_before_last} &
4986e6a6 59 ok $? "Application started in background."
b19155c0 60
e563bbdb 61 start_lttng_tracing_ok $SESSION_NAME
b19155c0 62
5fcaccbc
MD
63 touch ${file_sync_before_last}
64
c7613334 65 wait
b19155c0 66
96340a01 67 stop_lttng_tracing_ok $SESSION_NAME
67b4c664 68 destroy_lttng_session_ok $SESSION_NAME
b19155c0 69
5fcaccbc
MD
70 rm -f ${file_sync_after_first}
71 rm -f ${file_sync_before_last}
72
4986e6a6
DG
73 validate_trace $EVENT_NAME $TRACE_PATH
74 out=$?
b19155c0
DG
75
76 return $out
77}
78
79# MUST set TESTDIR before calling those functions
f38839af 80plan_tests $NUM_TESTS
b19155c0 81
e3bef725
CB
82print_test_banner "$TEST_DESC"
83
fb3268e3 84start_lttng_sessiond
b19155c0 85
4986e6a6 86diag "Start tracing BEFORE application is started"
b19155c0 87
33e55711 88TRACE_PATH=$(mktemp --tmpdir -d tmp.test_before_after_ust_trace_path.XXXXXX)
b19155c0
DG
89
90test_before_apps
91out=$?
92if [ $out -ne 0 ]; then
fb3268e3 93 stop_lttng_sessiond
b19155c0
DG
94 exit $out
95fi
96
97rm -rf $TRACE_PATH
98
4986e6a6 99diag "Start tracing AFTER application is started"
b19155c0 100
33e55711 101TRACE_PATH=$(mktemp --tmpdir -d tmp.test_before_after_ust_trace_path.XXXXXX)
b19155c0
DG
102
103test_after_apps
104out=$?
105if [ $out -ne 0 ]; then
fb3268e3 106 stop_lttng_sessiond
b19155c0
DG
107 exit $out
108fi
109
fb3268e3 110stop_lttng_sessiond
b19155c0
DG
111
112rm -rf $TRACE_PATH
This page took 0.048214 seconds and 4 git commands to generate.