3 # Copyright (C) 2012 David Goulet <dgoulet@efficios.com>
5 # SPDX-License-Identifier: LGPL-2.1-only
8 TEST_DESC
="UST tracer - Generate $NUM_PROCESS process"
10 CURDIR
=$
(dirname "$0")/
11 TESTDIR
=$CURDIR/..
/..
/..
12 NR_ITER
=-1 # infinite loop
14 TESTAPP_PATH
="$TESTDIR/utils/testapp"
15 TESTAPP_NAME
="gen-ust-events"
16 TESTAPP_BIN
="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
17 SESSION_NAME
="ust-nprocesses"
18 EVENT_NAME
="tp:tptest"
22 # shellcheck source-path=SCRIPTDIR/../../../
23 source "${TESTDIR}/utils/utils.sh"
25 if [ ! -x "$TESTAPP_BIN" ]; then
26 BAIL_OUT
"No UST $TESTAPP_BIN binary detected."
29 # MUST set TESTDIR before calling those functions
33 print_test_banner
"$TEST_DESC"
35 # shellcheck disable=SC2119
38 # Start tests. Each is an infinite tracing loop.
40 file_sync_after_first
=$
(mktemp
-u -t tmp.test_nprocesses_sync_after_first.XXXXXX
)
41 file_sync_before_last
=$
(mktemp
-u -t tmp.test_nprocesses_sync_before_last.XXXXXX
)
43 diag
"Starting $NUM_PROCESS test applications"
44 # shellcheck disable=SC2034
45 for i
in $
(seq 1 $NUM_PROCESS)
47 $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \
48 --sync-after-first-event "${file_sync_after_first}" \
49 --sync-before-last-event "${file_sync_before_last}" >/dev
/null
2>&1 &
53 diag
"Waiting for applications to be registered to sessiond"
56 while [ $reg_app_count -ne $NUM_PROCESS ]; do
57 listing
=$
("${TESTDIR}/../src/bin/lttng/${LTTNG_BIN}" list
-u)
58 reg_app_count
=$
(echo -n "${listing}" |
sed "s#$TESTAPP_BIN#$TESTAPP_BIN\n#g" |
grep -c "$TESTAPP_BIN")
61 pass
"All applications are registered to sessiond"
63 TRACE_PATH
=$
(mktemp
-d -t tmp.test_nprocesses_trace_path.XXXXXX
)
65 create_lttng_session_ok
$SESSION_NAME "${TRACE_PATH}"
67 enable_ust_lttng_event_ok
$SESSION_NAME $EVENT_NAME
68 start_lttng_tracing_ok
$SESSION_NAME
70 touch "${file_sync_before_last}"
72 # We don't validate whether the applications have traced here, rather
73 # just that they registered to sessiond (above).
75 stop_lttng_tracing_ok
$SESSION_NAME
76 destroy_lttng_session_ok
$SESSION_NAME
78 #TODO: add trace validation.
80 rm -rf "${TRACE_PATH}"
82 diag
"Stopping all spawned applications"
84 wait "${APP_PIDS[@]}" 2>/dev
/null
86 pass
"Stopped all spawned applications"
88 rm -f "${file_sync_after_first}"
89 rm -f "${file_sync_before_last}"
91 # shellcheck disable=SC2119