CURDIR=$(dirname "$0")/
TESTDIR=$CURDIR/../..
-NUM_TESTS=11
+NUM_TESTS=12
TEST_APP_USERSPACE="$TESTDIR/utils/testapp/gen-syscall-events-callstack/gen-syscall-events-callstack"
TEST_APP_KERNELSPACE="$TESTDIR/utils/testapp/gen-syscall-events/gen-syscall-events"
PARSE_CALLSTACK="$TESTDIR/utils/parse-callstack.py"
function run_workload()
{
local TEST_APP=$1
- local start_file_sync
- start_file_sync=$(mktemp -u)
+ # shift the first argument, passing along the other args if any to the
+ # test app.
+ shift
+ local start_file_sync=$(mktemp -u -t "tmp.${FUNCNAME[0]}_sync_before_first.XXXXXX")
lttng_untrack_all
- ./"$TEST_APP" "$start_file_sync" &
+ ./"$TEST_APP" "$start_file_sync" "$@" &
PID=$!
lttng_track_pid $PID
function test_user_callstack()
{
- TRACE_PATH=$(mktemp -d)
+ TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX")
# This is the expected userspace callstack. (see gen-syscall-events-callstack.c)
USER_CS_EXPECTED="main fct_a fct_b fct_c my_gettid"
EVENT_NAME="gettid"
function test_kernel_callstack()
{
- TRACE_PATH=$(mktemp -d)
+ TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX")
# Those are symbol expected to be present in the kernel callstack. This
# is not an exhaustive list since it's kernel dependent.
lttng_enable_kernel_syscall_ok "$SESSION_NAME" "$EVENT_NAME" "$CHANNEL_NAME"
add_context_kernel_ok "$SESSION_NAME" "$CHANNEL_NAME" "callstack-kernel"
- run_workload $TEST_APP_KERNELSPACE
+ run_workload "$TEST_APP_KERNELSPACE" "/proc/cpuinfo" "/proc/cmdline"
destroy_lttng_session_ok "$SESSION_NAME"
rm -rf "$TRACE_PATH"
}
-# Only run userspace callstack test on x86
-uname -m | grep -E "x86" >/dev/null 2>&1
+# Only run userspace callstack test on x86 (32 and 64 variants)
+uname -m | grep "86" >/dev/null 2>&1
if test $? == 0; then
- NUM_TESTS=$((NUM_TESTS+11))
+ NUM_TESTS=$((NUM_TESTS+10))
RUN_USERSPACE_TEST=1
else
RUN_USERSPACE_TEST=0
print_test_banner "$TEST_DESC"
+bail_out_if_no_babeltrace
+
if [ "$(id -u)" == "0" ]; then
isroot=1
else
skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" ||
{
- which "$BABELTRACE_BIN" > /dev/null
- test $? -ne 0
- skip $? "Babeltrace binary not found. Skipping callstack tests" "$NUM_TESTS" ||
- {
- start_lttng_sessiond
+ validate_lttng_modules_present
+ start_lttng_sessiond
- if test $RUN_USERSPACE_TEST == 1; then
- test_user_callstack
- fi
+ if test $RUN_USERSPACE_TEST == 1; then
+ test_user_callstack
+ fi
- test_kernel_callstack
+ test_kernel_callstack
- stop_lttng_sessiond
- }
+ stop_lttng_sessiond
}