X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fregression%2Fkernel%2Ftest_syscall;h=57adad905fca6ce4750bb6c59f534747482910e9;hb=7cd988f06d15559d0e455f519cc8da814696462e;hp=16df6a895f930f30764ee8f20d5c7ac8f9c152a1;hpb=02db71bac53b6537d8774df68c8a39a807a39b93;p=lttng-tools.git diff --git a/tests/regression/kernel/test_syscall b/tests/regression/kernel/test_syscall index 16df6a895..57adad905 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" @@ -59,15 +59,15 @@ function test_syscall_simple_list() diag "Syscall simple listing" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH lttng_enable_kernel_syscall_ok $SESSION_NAME $EVENT_NAME validate_list $SESSION_NAME $EVENT_NAME - start_lttng_tracing + start_lttng_tracing_ok eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure each is there. validate_trace_exp "-e syscall_entry_$EVENT_NAME: -e compat_syscall_entry_$EVENT_NAME:" $TRACE_PATH @@ -76,7 +76,7 @@ function test_syscall_simple_list() # ensure trace only contains those. validate_trace_only_exp "-e syscall_entry_$EVENT_NAME: -e compat_syscall_entry_$EVENT_NAME: -e syscall_exit_$EVENT_NAME: -e compat_syscall_exit_$EVENT_NAME:" $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -90,7 +90,7 @@ function test_syscall_simple_list_two() diag "Syscall simple listing" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH lttng_enable_kernel_syscall_ok $SESSION_NAME $EVENT_NAME lttng_enable_kernel_syscall_ok $SESSION_NAME $EVENT_NAME2 @@ -98,9 +98,9 @@ function test_syscall_simple_list_two() validate_list $SESSION_NAME $EVENT_NAME validate_list $SESSION_NAME $EVENT_NAME2 - start_lttng_tracing + start_lttng_tracing_ok eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure each is there. validate_trace_exp "-e syscall_entry_$EVENT_NAME: -e compat_syscall_entry_$EVENT_NAME:" $TRACE_PATH @@ -113,7 +113,7 @@ function test_syscall_simple_list_two() # ensure trace only contains those. validate_trace_only_exp "-e syscall_entry_$EVENT_NAME: -e compat_syscall_entry_$EVENT_NAME: -e syscall_exit_$EVENT_NAME: -e compat_syscall_exit_$EVENT_NAME: -e syscall_entry_$EVENT_NAME2: -e compat_syscall_entry_$EVENT_NAME2: -e syscall_exit_$EVENT_NAME2: -e compat_syscall_exit_$EVENT_NAME2:" $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -125,13 +125,13 @@ function test_syscall_single() diag "Syscall trace single" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH lttng_enable_kernel_syscall_ok $SESSION_NAME "open" - start_lttng_tracing + start_lttng_tracing_ok eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure each is there. validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH @@ -140,7 +140,7 @@ function test_syscall_single() # ensure trace only contains those. validate_trace_only_exp "-e syscall_entry_open: -e compat_syscall_entry_open: -e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -152,14 +152,14 @@ function test_syscall_two() diag "Syscall trace two events" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH lttng_enable_kernel_syscall_ok $SESSION_NAME "open" lttng_enable_kernel_syscall_ok $SESSION_NAME "close" - start_lttng_tracing + start_lttng_tracing_ok eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure each is there. validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH @@ -170,7 +170,7 @@ function test_syscall_two() # ensure trace only contains those. validate_trace_only_exp "-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 - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -182,14 +182,14 @@ function test_syscall_all() diag "Syscall trace all events" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable all syscalls lttng_enable_kernel_syscall_ok $SESSION_NAME - start_lttng_tracing + start_lttng_tracing_ok eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure at least open and close are there. validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH @@ -198,7 +198,7 @@ function test_syscall_all() validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH # trace may contain other syscalls. - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -210,25 +210,26 @@ function test_syscall_all_disable_one() diag "Syscall trace all events and disable one" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # 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 + start_lttng_tracing_ok eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok - # 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 validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -240,27 +241,32 @@ function test_syscall_all_disable_two() diag "Syscall trace all events and disable two" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # 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 + start_lttng_tracing_ok # generates open, close, execve (at least) eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok - # 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 validate_trace_exp "-e syscall_exit_execve: -e compat_syscall_exit_execve:" $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -272,22 +278,22 @@ function test_syscall_enable_all_disable_all() diag "Syscall trace all events and disable all" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable all system calls lttng_enable_kernel_syscall_ok $SESSION_NAME # disable all system calls lttng_disable_kernel_syscall_ok $SESSION_NAME - start_lttng_tracing + start_lttng_tracing_ok # generates open, close, execve (at least) eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure nothing has been traced. validate_trace_empty $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -299,7 +305,7 @@ function test_syscall_enable_all_disable_all_enable_all() diag "Syscall trace all events and enable/disable all" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable all system calls lttng_enable_kernel_syscall_ok $SESSION_NAME @@ -308,10 +314,10 @@ function test_syscall_enable_all_disable_all_enable_all() # enable all system calls lttng_enable_kernel_syscall_ok $SESSION_NAME - start_lttng_tracing + start_lttng_tracing_ok # generates open, close, execve (at least) eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure at least open and close are there. validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH @@ -320,7 +326,7 @@ function test_syscall_enable_all_disable_all_enable_all() validate_trace_exp "-e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH # trace may contain other syscalls. - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -332,7 +338,7 @@ function test_syscall_enable_all_disable_all_twice() diag "Syscall trace all events and enable/disable all twice" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable all system calls lttng_enable_kernel_syscall_ok $SESSION_NAME @@ -343,15 +349,15 @@ function test_syscall_enable_all_disable_all_twice() # disable all system calls lttng_disable_kernel_syscall_ok $SESSION_NAME - start_lttng_tracing + start_lttng_tracing_ok # generates open, close, execve (at least) eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure nothing has been traced. validate_trace_empty $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -363,22 +369,22 @@ function test_syscall_enable_one_disable_one() diag "Syscall trace one event and disable one" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable open system call lttng_enable_kernel_syscall_ok $SESSION_NAME "open" # disable open system call lttng_disable_kernel_syscall_ok $SESSION_NAME "open" - start_lttng_tracing + start_lttng_tracing_ok # generates open, close, execve (at least) eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure nothing has been traced. validate_trace_empty $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -390,7 +396,7 @@ function test_syscall_enable_two_disable_two() diag "Syscall trace two events and disable two" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable open and close system calls lttng_enable_kernel_syscall_ok $SESSION_NAME "open" @@ -399,15 +405,15 @@ function test_syscall_enable_two_disable_two() lttng_disable_kernel_syscall_ok $SESSION_NAME "open" lttng_disable_kernel_syscall_ok $SESSION_NAME "close" - start_lttng_tracing + start_lttng_tracing_ok # generates open, close, execve (at least) eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure nothing has been traced. validate_trace_empty $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -419,7 +425,7 @@ function test_syscall_enable_two_disable_one() diag "Syscall trace two events and disable one" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable open and close system calls lttng_enable_kernel_syscall_ok $SESSION_NAME "open" @@ -427,10 +433,10 @@ function test_syscall_enable_two_disable_one() # disable close system call lttng_disable_kernel_syscall_ok $SESSION_NAME "close" - start_lttng_tracing + start_lttng_tracing_ok # generates open, close, execve (at least) eval ${TESTCMD} - stop_lttng_tracing + stop_lttng_tracing_ok # ensure open is there. validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH @@ -439,7 +445,7 @@ function test_syscall_enable_two_disable_one() # ensure trace only contains those. validate_trace_only_exp "-e syscall_entry_open: -e compat_syscall_entry_open: -e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -451,15 +457,15 @@ function test_syscall_disable_twice() diag "Syscall trace one event and disable twice" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH 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 + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -471,15 +477,15 @@ function test_syscall_disable_all_twice() diag "Syscall trace all events and disable all twice" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH 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 + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -492,11 +498,13 @@ function test_syscall_enable_unknown() diag "Syscall enable an unknown event" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $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 + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -508,13 +516,13 @@ function test_syscall_enable_all_enable_one() diag "Syscall enable all and enable one" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $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 + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -526,14 +534,14 @@ function test_syscall_disable_all_disable_one() diag "Syscall disable all and disable one" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH lttng_enable_kernel_syscall_ok $SESSION_NAME lttng_disable_kernel_syscall_ok $SESSION_NAME # Disabling an event already disabled fails. lttng_disable_kernel_syscall_fail $SESSION_NAME "open" - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -546,12 +554,14 @@ function test_syscall_enable_channel_disable_all() diag "Syscall enable channel and disable all" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $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 + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -564,12 +574,12 @@ function test_syscall_enable_channel_disable_one() diag "Syscall enable channel and disable one" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH lttng_enable_kernel_channel_ok $SESSION_NAME $CHANNEL_NAME lttng_disable_kernel_syscall_fail $SESSION_NAME "open" $CHANNEL_NAME - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH }