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