X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fregression%2Fkernel%2Ftest_userspace_probe;h=bfa260e47a7a00c465429f4951d6e463a4f572f8;hb=8d5a3312b34841f1ecba2605acad3eaca79fd5e4;hp=f6da00dd4b0f1ebc42deec20de595c7c9e52e333;hpb=ef3dfe5d31c88fb548189a6441aaf8b2afc0bd4b;p=lttng-tools.git diff --git a/tests/regression/kernel/test_userspace_probe b/tests/regression/kernel/test_userspace_probe index f6da00dd4..bfa260e47 100755 --- a/tests/regression/kernel/test_userspace_probe +++ b/tests/regression/kernel/test_userspace_probe @@ -1,20 +1,10 @@ #!/bin/bash # -# Copyright (C) - 2017 Erica Bugden -# Copyright (C) - 2017 Francis Deslauriers +# Copyright (C) 2017 Erica Bugden +# Copyright (C) 2017 Francis Deslauriers # -# This library is free software; you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the Free -# Software Foundation; version 2.1 of the License. +# SPDX-License-Identifier: LGPL-2.1-only # -# This library is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -# details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this library; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA TEST_DESC="Userspace probe - Testing userspace probe on ELF symbol" @@ -32,7 +22,7 @@ SDT_TEST_BIN_NAME="userspace-probe-sdt-binary" SDT_TEST_BIN="$SDT_TEST_BIN_DIR/$SDT_TEST_BIN_NAME" ELF_SYMBOL="test_function" PROBE_EVENT_NAME=userspace_probe_test_event -NUM_TESTS=87 +NUM_TESTS=93 OUTPUT_DEST=/dev/null ERROR_OUTPUT_DEST=/dev/null @@ -54,7 +44,7 @@ function validate_list() function test_userspace_probe_enable_file_noexist () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_file_noexist" ENABLE_EXPR="elf:/etc/file-not-exist:$ELF_SYMBOL" @@ -71,7 +61,7 @@ function test_userspace_probe_enable_file_noexist () function test_userspace_probe_enable_file_not_elf () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_file_not_elf" ENABLE_EXPR="elf:/etc/passwd:$ELF_SYMBOL" @@ -88,7 +78,7 @@ function test_userspace_probe_enable_file_not_elf () function test_userspace_probe_enable_elf_missing_symbol_name () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_elf_missing_symbol" ENABLE_EXPR="elf:$ELF_TEST_BIN:" @@ -105,7 +95,7 @@ function test_userspace_probe_enable_elf_missing_symbol_name () function test_userspace_probe_enable_elf_nonexistant_symbol () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_elf_nonexistant_symbol" ELF_SYMBOL_NO_EXIST="function_doesnt_exist" ENABLE_EXPR="elf:$ELF_TEST_BIN:$ELF_SYMBOL_NO_EXIST" @@ -123,7 +113,7 @@ function test_userspace_probe_enable_elf_nonexistant_symbol () function test_userspace_probe_enable_elf_symbol_not_function () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_elf_symbol_not_function" ELF_SYMBOL_NO_FUNC="not_a_function" ENABLE_EXPR="elf:$ELF_TEST_BIN:$ELF_SYMBOL_NO_FUNC" @@ -139,9 +129,34 @@ function test_userspace_probe_enable_elf_symbol_not_function () rm -rf "$TRACE_PATH" } +function test_userspace_probe_unsupported_types () +{ + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + SESSION_NAME="test_userspace_probe_unsupported_types" + # Userspace probe at an address or at an offset to a function + # instrumentation description types are not supported at the moment. + ENABLE_EXPR_1="elf:$ELF_TEST_BIN:0x400030" + ENABLE_EXPR_2="elf:$ELF_TEST_BIN:4194364" + ENABLE_EXPR_3="elf:$ELF_TEST_BIN:$ELF_SYMBOL+0x21" + ENABLE_EXPR_4="elf:$ELF_TEST_BIN:$ELF_SYMBOL+2" + + diag "Userspace probe enable with unsupported instrumentation description type" + + create_lttng_session_ok $SESSION_NAME "$TRACE_PATH" + + lttng_enable_kernel_userspace_probe_event_fail $SESSION_NAME "$ENABLE_EXPR_1" $PROBE_EVENT_NAME + lttng_enable_kernel_userspace_probe_event_fail $SESSION_NAME "$ENABLE_EXPR_2" $PROBE_EVENT_NAME + lttng_enable_kernel_userspace_probe_event_fail $SESSION_NAME "$ENABLE_EXPR_3" $PROBE_EVENT_NAME + lttng_enable_kernel_userspace_probe_event_fail $SESSION_NAME "$ENABLE_EXPR_4" $PROBE_EVENT_NAME + + destroy_lttng_session_ok $SESSION_NAME + + rm -rf "$TRACE_PATH" +} + function test_userspace_probe_enable_implicit_probe_type () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_implicit_probe_type" ENABLE_EXPR="$ELF_TEST_BIN:$ELF_SYMBOL" @@ -151,10 +166,10 @@ function test_userspace_probe_enable_implicit_probe_type () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME - validate_list $SESSION_NAME $ELF_SYMBOL - validate_list $SESSION_NAME $ELF_TEST_BIN_NAME - validate_list $SESSION_NAME "ELF" - validate_list $SESSION_NAME "Function" + validate_list $SESSION_NAME $ELF_SYMBOL + validate_list $SESSION_NAME $ELF_TEST_BIN_NAME + validate_list $SESSION_NAME "ELF" + validate_list $SESSION_NAME "Function" destroy_lttng_session_ok $SESSION_NAME @@ -163,7 +178,7 @@ function test_userspace_probe_enable_implicit_probe_type () function test_userspace_probe_enable_elf_symbol_exists () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_elf_symbol_exists" ENABLE_EXPR="elf:$ELF_TEST_BIN:$ELF_SYMBOL" @@ -173,10 +188,10 @@ function test_userspace_probe_enable_elf_symbol_exists () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME - validate_list $SESSION_NAME $ELF_SYMBOL - validate_list $SESSION_NAME $ELF_TEST_BIN_NAME - validate_list $SESSION_NAME "ELF" - validate_list $SESSION_NAME "Function" + validate_list $SESSION_NAME $ELF_SYMBOL + validate_list $SESSION_NAME $ELF_TEST_BIN_NAME + validate_list $SESSION_NAME "ELF" + validate_list $SESSION_NAME "Function" destroy_lttng_session_ok $SESSION_NAME @@ -185,7 +200,7 @@ function test_userspace_probe_enable_elf_symbol_exists () function test_userspace_probe_enable_in_path () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_in_path" ENABLE_EXPR="elf:$ELF_TEST_BIN_NAME:$ELF_SYMBOL" @@ -199,10 +214,10 @@ function test_userspace_probe_enable_in_path () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME - validate_list $SESSION_NAME $ELF_SYMBOL - validate_list $SESSION_NAME $ELF_TEST_BIN_NAME - validate_list $SESSION_NAME "ELF" - validate_list $SESSION_NAME "Function" + validate_list $SESSION_NAME $ELF_SYMBOL + validate_list $SESSION_NAME $ELF_TEST_BIN_NAME + validate_list $SESSION_NAME "ELF" + validate_list $SESSION_NAME "Function" # Reset the previously saved PATH. export PATH="$OLDPATH" @@ -214,7 +229,7 @@ function test_userspace_probe_enable_in_path () function test_userspace_probe_enable_full_path () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_full_path" ENABLE_EXPR="elf:$(realpath $ELF_TEST_BIN):$ELF_SYMBOL" diag "Userspace probe with full path enabled successfully" @@ -223,10 +238,10 @@ function test_userspace_probe_enable_full_path () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME - validate_list $SESSION_NAME $ELF_SYMBOL - validate_list $SESSION_NAME $ELF_TEST_BIN_NAME - validate_list $SESSION_NAME "ELF" - validate_list $SESSION_NAME "Function" + validate_list $SESSION_NAME $ELF_SYMBOL + validate_list $SESSION_NAME $ELF_TEST_BIN_NAME + validate_list $SESSION_NAME "ELF" + validate_list $SESSION_NAME "Function" destroy_lttng_session_ok $SESSION_NAME @@ -235,9 +250,9 @@ function test_userspace_probe_enable_full_path () function test_userspace_probe_enable_colon_in_path () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userspace_probe_enable_colon_in_path" - COLON_FILE_PATH=$(mktemp -d) + COLON_FILE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") ELF_BIN_SYMLINK="$COLON_FILE_PATH/colon_:_in_name" ELF_BIN_WITH_COLON_IN_NAME_ESCAPED="$COLON_FILE_PATH/colon_\:_in_name" ENABLE_EXPR="elf:"$ELF_BIN_WITH_COLON_IN_NAME_ESCAPED":$ELF_SYMBOL" @@ -250,10 +265,10 @@ function test_userspace_probe_enable_colon_in_path () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME - validate_list $SESSION_NAME $ELF_SYMBOL - validate_list $SESSION_NAME $ELF_TEST_BIN_NAME - validate_list $SESSION_NAME "ELF" - validate_list $SESSION_NAME "Function" + validate_list $SESSION_NAME $ELF_SYMBOL + validate_list $SESSION_NAME $ELF_TEST_BIN_NAME + validate_list $SESSION_NAME "ELF" + validate_list $SESSION_NAME "Function" destroy_lttng_session_ok $SESSION_NAME @@ -263,7 +278,7 @@ function test_userspace_probe_enable_colon_in_path () function test_userspace_probe_elf () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_elf" ENABLE_EXPR="elf:$ELF_TEST_BIN:$ELF_SYMBOL" @@ -274,7 +289,7 @@ function test_userspace_probe_elf () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$ELF_TEST_BIN" > /dev/null + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-elf-binary/.libs" "$ELF_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -286,7 +301,7 @@ function test_userspace_probe_elf () function test_userspace_probe_elf_dynamic_symbol () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_elf" LIBFOO_PATH="$ELF_TEST_BIN_DIR/libfoo.so" ENABLE_EXPR="elf:$LIBFOO_PATH:dynamic_symbol" @@ -298,7 +313,7 @@ function test_userspace_probe_elf_dynamic_symbol () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$ELF_TEST_BIN" > /dev/null + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-elf-binary/.libs" "$ELF_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -310,7 +325,7 @@ function test_userspace_probe_elf_dynamic_symbol () function test_userspace_probe_elf_cxx_function () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_elf_cxx_function" # Probing C++ mangled symbols should work the same way as regular Elf # symbols @@ -324,7 +339,7 @@ function test_userspace_probe_elf_cxx_function () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$ELF_CXX_TEST_BIN" > /dev/null + eval "$ELF_CXX_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -336,7 +351,7 @@ function test_userspace_probe_elf_cxx_function () function test_userspace_probe_elf_cxx_method () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_elf_cxx_method" # Probing C++ mangled symbols should work the same way as regular Elf # symbols @@ -350,7 +365,7 @@ function test_userspace_probe_elf_cxx_method () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$ELF_CXX_TEST_BIN" > /dev/null + eval "$ELF_CXX_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -362,7 +377,7 @@ function test_userspace_probe_elf_cxx_method () function test_userspace_probe_elf_disable () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_elf_disable" ENABLE_EXPR="elf:$ELF_TEST_BIN:$ELF_SYMBOL" @@ -375,7 +390,7 @@ function test_userspace_probe_elf_disable () disable_kernel_lttng_userspace_probe_event_ok $SESSION_NAME $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$ELF_TEST_BIN" > /dev/null + eval "$ELF_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME # Verify that the trace contains zero event. @@ -388,7 +403,7 @@ function test_userspace_probe_elf_disable () function test_userspace_probe_elf_list () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_elf_list" ENABLE_EXPR="elf:$ELF_TEST_BIN:$ELF_SYMBOL" @@ -398,11 +413,11 @@ function test_userspace_probe_elf_list () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME - validate_list $SESSION_NAME $PROBE_EVENT_NAME - validate_list $SESSION_NAME $ELF_SYMBOL - validate_list $SESSION_NAME $ELF_TEST_BIN_NAME - validate_list $SESSION_NAME "ELF" - validate_list $SESSION_NAME "Function" + validate_list $SESSION_NAME $PROBE_EVENT_NAME + validate_list $SESSION_NAME $ELF_SYMBOL + validate_list $SESSION_NAME $ELF_TEST_BIN_NAME + validate_list $SESSION_NAME "ELF" + validate_list $SESSION_NAME "Function" destroy_lttng_session_ok $SESSION_NAME @@ -416,9 +431,9 @@ function test_userspace_probe_save_load_elf() # saves the path to the link and not to the actual file. This is to # support instrumentation of shared objects that are often accessed # through symlinks and updated. - TRACE_PATH=$(mktemp -d) - TMP_LINK_DIR=$(mktemp -d) - TMP_SAVE_DIR=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + TMP_LINK_DIR=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + TMP_SAVE_DIR=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_save_load_elf" @@ -472,9 +487,9 @@ function test_userspace_probe_save_load_sdt() # saves the path to the link and not to the actual file. This is to # support instrumentation of shared objects that are often accessed # through symlinks and updated. - TRACE_PATH=$(mktemp -d) - TMP_LINK_DIR=$(mktemp -d) - TMP_SAVE_DIR=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + TMP_LINK_DIR=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + TMP_SAVE_DIR=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_save_load_sdt" PROVIDER="foobar" @@ -526,10 +541,11 @@ function test_userspace_probe_save_load_sdt() function test_userspace_probe_sdt () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") PROVIDER="foobar" PROBE="tp1" ENABLE_EXPR="sdt:$SDT_TEST_BIN:$PROVIDER:$PROBE" + SESSION_NAME="${FUNCNAME[0]}" diag "Userspace probe on SDT tracepoint enabled and traced" @@ -538,7 +554,7 @@ function test_userspace_probe_sdt () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$SDT_TEST_BIN" > /dev/null + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-sdt-binary/.libs" "$SDT_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -550,7 +566,7 @@ function test_userspace_probe_sdt () function test_userspace_probe_sdt_list () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_list" PROVIDER="foobar" PROBE="tp1" @@ -562,12 +578,12 @@ function test_userspace_probe_sdt_list () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME - validate_list $SESSION_NAME $PROBE_EVENT_NAME - validate_list $SESSION_NAME $PROVIDER - validate_list $SESSION_NAME $PROBE - validate_list $SESSION_NAME $SDT_TEST_BIN_NAME - validate_list $SESSION_NAME "SDT" - validate_list $SESSION_NAME "Tracepoint" + validate_list $SESSION_NAME $PROBE_EVENT_NAME + validate_list $SESSION_NAME $PROVIDER + validate_list $SESSION_NAME $PROBE + validate_list $SESSION_NAME $SDT_TEST_BIN_NAME + validate_list $SESSION_NAME "SDT" + validate_list $SESSION_NAME "Tracepoint" destroy_lttng_session_ok $SESSION_NAME @@ -576,7 +592,7 @@ function test_userspace_probe_sdt_list () function test_userspace_probe_enable_sdt_nonexistant_provider () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_nonexistand_provider" PROVIDER="not_provider" PROBE="tp1" @@ -595,7 +611,7 @@ function test_userspace_probe_enable_sdt_nonexistant_provider () function test_userspace_probe_enable_sdt_nonexistant_probe () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_nonexistant_probe" PROVIDER="foobar" PROBE="not_a_tracepoint" @@ -614,7 +630,7 @@ function test_userspace_probe_enable_sdt_nonexistant_probe () function test_userspace_probe_enable_sdt_with_sema () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_with_sema" PROVIDER="foobar" PROBE="tp_with_semaphore" @@ -633,7 +649,7 @@ function test_userspace_probe_enable_sdt_with_sema () function test_userspace_probe_sdt_one_probe () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_one_probe" PROVIDER="foobar" PROBE="tp1" @@ -646,7 +662,7 @@ function test_userspace_probe_sdt_one_probe () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$SDT_TEST_BIN" > /dev/null + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-sdt-binary/.libs" "$SDT_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -658,7 +674,7 @@ function test_userspace_probe_sdt_one_probe () function test_userspace_probe_sdt_two_probes () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_two_probes" PROVIDER="foobar" PROBE="tp2" @@ -671,7 +687,7 @@ function test_userspace_probe_sdt_two_probes () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$SDT_TEST_BIN" > /dev/null + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-sdt-binary/.libs" "$SDT_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -683,7 +699,7 @@ function test_userspace_probe_sdt_two_probes () function test_userspace_probe_sdt_in_shared_object () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_shared_object" PROVIDER="foobar" PROBE="tp_in_shared_object" @@ -696,7 +712,7 @@ function test_userspace_probe_sdt_in_shared_object () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$SDT_TEST_BIN" > /dev/null + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-sdt-binary/.libs" "$SDT_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -708,7 +724,7 @@ function test_userspace_probe_sdt_in_shared_object () function test_userspace_probe_sdt_in_shared_object_dlopen () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_shared_object_dlopen" PROVIDER="foobar" PROBE="tp_in_dlopen" @@ -721,7 +737,7 @@ function test_userspace_probe_sdt_in_shared_object_dlopen () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$SDT_TEST_BIN" > /dev/null + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-sdt-binary/.libs" "$SDT_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -733,7 +749,7 @@ function test_userspace_probe_sdt_in_shared_object_dlopen () function test_userspace_probe_sdt_in_shared_object_ldpreload () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_shared_object_ldpreload" PROVIDER="foobar" PROBE="tp_in_ldpreload" @@ -746,7 +762,7 @@ function test_userspace_probe_sdt_in_shared_object_ldpreload () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - LD_PRELOAD="$SDT_TEST_BIN_DIR/libzzz.so" eval "$SDT_TEST_BIN" > /dev/null + LD_PRELOAD="$SDT_TEST_BIN_DIR/libzzz.so" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-sdt-binary/.libs" "$SDT_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -758,7 +774,7 @@ function test_userspace_probe_sdt_in_shared_object_ldpreload () function test_userspace_probe_sdt_with_arg () { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="test_userprobe_sdt_arg" PROVIDER="foobar" PROBE="tp_with_arg" @@ -771,7 +787,7 @@ function test_userspace_probe_sdt_with_arg () lttng_enable_kernel_userspace_probe_event_ok $SESSION_NAME "$ENABLE_EXPR" $PROBE_EVENT_NAME start_lttng_tracing_ok $SESSION_NAME - eval "$SDT_TEST_BIN" > /dev/null + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/utils/testapp/userspace-probe-sdt-binary/.libs" "$SDT_TEST_BIN" > /dev/null stop_lttng_tracing_ok $SESSION_NAME validate_trace $PROBE_EVENT_NAME "$TRACE_PATH" @@ -807,6 +823,7 @@ fi skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || { + validate_lttng_modules_present start_lttng_sessiond # Unsuccessful event enabling @@ -816,6 +833,7 @@ skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || test_userspace_probe_enable_elf_missing_symbol_name test_userspace_probe_enable_elf_nonexistant_symbol test_userspace_probe_enable_elf_symbol_not_function + test_userspace_probe_unsupported_types # Successful userspace probe elf enabling test_userspace_probe_enable_implicit_probe_type