From: Mathieu Desnoyers Date: Wed, 5 Nov 2014 21:54:48 +0000 (-0500) Subject: syscall tracing: update tests X-Git-Tag: v2.7.0-rc1~54 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=fac26884aa477a653fb72cc009fb14f970833baf;p=lttng-tools.git syscall tracing: update tests Update syscall tracing tests following the semantic changes of enablers in lttng-modules and disable behavior of lttng-sessiond. Signed-off-by: Mathieu Desnoyers Signed-off-by: Jérémie Galarneau --- diff --git a/tests/regression/kernel/test_syscall b/tests/regression/kernel/test_syscall index 16df6a895..a7800d2a1 100755 --- a/tests/regression/kernel/test_syscall +++ b/tests/regression/kernel/test_syscall @@ -20,7 +20,7 @@ TEST_DESC="Kernel tracer - System calls" CURDIR=$(dirname $0)/ TESTDIR=$CURDIR/../.. -NUM_TESTS=155 +NUM_TESTS=157 # test command issues at least open and close system calls TESTCMD="cat /proc/cpuinfo > /dev/null" @@ -214,15 +214,16 @@ function test_syscall_all_disable_one() # enable all syscalls lttng_enable_kernel_syscall_ok $SESSION_NAME - # disable open system call - lttng_disable_kernel_syscall_ok $SESSION_NAME "open" + # try to disable open system call: fails because enabler semantic of + # "all syscalls" is not "the open" system call. + lttng_disable_kernel_syscall_fail $SESSION_NAME "open" start_lttng_tracing eval ${TESTCMD} stop_lttng_tracing - # ensure "open" syscall is not there. - validate_trace_only_exp "-v -e syscall_entry_open: -e compat_syscall_entry_open: -e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH + # ensure "open" syscall is there. + validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open: -e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH # ensure "close" syscall is there. validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH @@ -244,17 +245,22 @@ function test_syscall_all_disable_two() # enable all syscalls lttng_enable_kernel_syscall_ok $SESSION_NAME - # disable open system call - lttng_disable_kernel_syscall_ok $SESSION_NAME "open" - lttng_disable_kernel_syscall_ok $SESSION_NAME "close" + # try to disable open and close system calls: fails because enabler + # semantic of "all syscalls" is not "the open" system call. + lttng_disable_kernel_syscall_fail $SESSION_NAME "open" + lttng_disable_kernel_syscall_fail $SESSION_NAME "close" start_lttng_tracing # generates open, close, execve (at least) eval ${TESTCMD} stop_lttng_tracing - # ensure "open" and "close" syscalls are not there. - validate_trace_only_exp "-v -e syscall_entry_open: -e compat_syscall_entry_open: -e syscall_exit_open: -e compat_syscall_exit_open: -e syscall_entry_close: -e compat_syscall_entry_close: -e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH + # ensure "open" syscall is there. + validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open: -e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH + + # ensure "close" syscall is there. + validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH + validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH # ensure "execve" syscall is there. validate_trace_exp "-e syscall_entry_execve: -e compat_syscall_entry_execve:" $TRACE_PATH @@ -456,8 +462,8 @@ function test_syscall_disable_twice() lttng_enable_kernel_syscall_ok $SESSION_NAME "open" # First disable will succeed lttng_disable_kernel_syscall_ok $SESSION_NAME "open" - # Second disable will fail - lttng_disable_kernel_syscall_fail $SESSION_NAME "open" + # Second disable succeeds too, due to enabler semantic. + lttng_disable_kernel_syscall_ok $SESSION_NAME "open" destroy_lttng_session $SESSION_NAME @@ -476,8 +482,8 @@ function test_syscall_disable_all_twice() lttng_enable_kernel_syscall_ok $SESSION_NAME # First disable will succeed lttng_disable_kernel_syscall_ok $SESSION_NAME - # Second disable will fail - lttng_disable_kernel_syscall_fail $SESSION_NAME + # Second disable succeeds too, due to enabler semantic. + lttng_disable_kernel_syscall_ok $SESSION_NAME destroy_lttng_session $SESSION_NAME @@ -494,7 +500,9 @@ function test_syscall_enable_unknown() create_lttng_session $SESSION_NAME $TRACE_PATH - lttng_enable_kernel_syscall_fail $SESSION_NAME "thissyscallcannotexist" + # Enabling a syscall that does not exist succeeds, due to enabler + # semantic. + lttng_enable_kernel_syscall_ok $SESSION_NAME "thissyscallcannotexist" destroy_lttng_session $SESSION_NAME @@ -511,8 +519,8 @@ function test_syscall_enable_all_enable_one() create_lttng_session $SESSION_NAME $TRACE_PATH lttng_enable_kernel_syscall_ok $SESSION_NAME - # Enabling an event already enabled fails. - lttng_enable_kernel_syscall_fail $SESSION_NAME "open" + # Enabling an event already enabled succeeds, due to enabler semantic. + lttng_enable_kernel_syscall_ok $SESSION_NAME "open" destroy_lttng_session $SESSION_NAME @@ -549,7 +557,9 @@ function test_syscall_enable_channel_disable_all() create_lttng_session $SESSION_NAME $TRACE_PATH lttng_enable_kernel_channel_ok $SESSION_NAME $CHANNEL_NAME - lttng_disable_kernel_syscall_fail $SESSION_NAME "-a" $CHANNEL_NAME + # sessiond semantic for "disable all" is to try to match all enalers + # it knowns about. Disable all succeeds if it finds no match. + lttng_disable_kernel_syscall_ok $SESSION_NAME "-a" $CHANNEL_NAME destroy_lttng_session $SESSION_NAME