Tests: use babeltrace2 for all tests
[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 82print_test_banner "$TEST_DESC"
c125de8f 83bail_out_if_no_babeltrace
e3bef725 84
fb3268e3 85start_lttng_sessiond
b19155c0 86
4986e6a6 87diag "Start tracing BEFORE application is started"
b19155c0 88
33e55711 89TRACE_PATH=$(mktemp --tmpdir -d tmp.test_before_after_ust_trace_path.XXXXXX)
b19155c0
DG
90
91test_before_apps
92out=$?
93if [ $out -ne 0 ]; then
fb3268e3 94 stop_lttng_sessiond
b19155c0
DG
95 exit $out
96fi
97
98rm -rf $TRACE_PATH
99
4986e6a6 100diag "Start tracing AFTER application is started"
b19155c0 101
33e55711 102TRACE_PATH=$(mktemp --tmpdir -d tmp.test_before_after_ust_trace_path.XXXXXX)
b19155c0
DG
103
104test_after_apps
105out=$?
106if [ $out -ne 0 ]; then
fb3268e3 107 stop_lttng_sessiond
b19155c0
DG
108 exit $out
109fi
110
fb3268e3 111stop_lttng_sessiond
b19155c0
DG
112
113rm -rf $TRACE_PATH
This page took 0.051529 seconds and 4 git commands to generate.