X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Fregression%2Fkernel%2Ftest_syscall;h=f9b49085835b39b2fc109b53b8ff61998e0710ed;hb=8d5a3312b34841f1ecba2605acad3eaca79fd5e4;hp=1dcae90c3e02d744194dbdb44bc589c529198a37;hpb=c8e51d1559c48a12f18053997bbcff0c162691c4;p=lttng-tools.git diff --git a/tests/regression/kernel/test_syscall b/tests/regression/kernel/test_syscall index 1dcae90c3..f9b490858 100755 --- a/tests/regression/kernel/test_syscall +++ b/tests/regression/kernel/test_syscall @@ -1,26 +1,16 @@ #!/bin/bash # -# Copyright (C) - 2013 Christian Babeux -# Copyright (C) - 2014 Mathieu Desnoyers +# Copyright (C) 2013 Christian Babeux +# Copyright (C) 2014 Mathieu Desnoyers # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License, version 2 only, as -# published by the Free Software Foundation. +# SPDX-License-Identifier: GPL-2.0-only # -# This program 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 General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. TEST_DESC="Kernel tracer - System calls" CURDIR=$(dirname $0)/ TESTDIR=$CURDIR/../.. -NUM_TESTS=183 +NUM_TESTS=214 # `gen-syscall-event` starts and waits for the creation a file passed by # arguments to start executing 3 syscalls (open,read,close) and returning. @@ -30,14 +20,13 @@ source $TESTDIR/utils/utils.sh function trace_testapp() { - local start_file_sync - start_file_sync=$(mktemp -u) + local start_file_sync=$(mktemp -u -t "tmp.${FUNCNAME[0]}_sync_start.XXXXXX") # Clear all entries from the resource tracker lttng_untrack_kernel_all_ok # Launch the testapp and save its Process ID - ./"$TESTCMD" "$start_file_sync" & + ./"$TESTCMD" "$start_file_sync" "/proc/cpuinfo" "/proc/cmdline" & PID=$! # Set LTTng to track this PID and start the tracing @@ -83,7 +72,7 @@ function test_syscall_event_list() function test_syscall_simple_list() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_simple_list" local EVENT_NAME="close" @@ -111,7 +100,7 @@ function test_syscall_simple_list() function test_syscall_simple_list_two() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_simple_list_two" local EVENT_NAME="close" local EVENT_NAME2="read" @@ -145,23 +134,23 @@ function test_syscall_simple_list_two() function test_syscall_single() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_single" diag "Syscall trace single" create_lttng_session_ok $SESSION_NAME $TRACE_PATH - lttng_enable_kernel_syscall_ok $SESSION_NAME "open" + lttng_enable_kernel_syscall_ok $SESSION_NAME "openat" trace_testapp # ensure all events are in the trace. - validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH - validate_trace_exp "-e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH + validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH + validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH # 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 + validate_trace_only_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH destroy_lttng_session_ok $SESSION_NAME @@ -170,26 +159,26 @@ function test_syscall_single() function test_syscall_two() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_two" diag "Syscall trace two events" create_lttng_session_ok $SESSION_NAME $TRACE_PATH - lttng_enable_kernel_syscall_ok $SESSION_NAME "open" + lttng_enable_kernel_syscall_ok $SESSION_NAME "openat" lttng_enable_kernel_syscall_ok $SESSION_NAME "close" trace_testapp # ensure all events are in the trace. - validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH - validate_trace_exp "-e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH + validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH + validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH 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 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 + validate_trace_only_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat: -e syscall_entry_close: -e compat_syscall_entry_close: -e syscall_exit_close: -e compat_syscall_exit_close:" $TRACE_PATH destroy_lttng_session_ok $SESSION_NAME @@ -198,7 +187,7 @@ function test_syscall_two() function test_syscall_all() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_all" diag "Syscall trace all events" @@ -211,8 +200,8 @@ function test_syscall_all() trace_testapp # ensure at least open and close are there. - validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH - validate_trace_exp "-e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH + validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH + validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH 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 # trace may contain other syscalls. @@ -224,7 +213,7 @@ function test_syscall_all() function test_syscall_all_disable_one() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_all_disable_one" diag "Syscall trace all events and disable one" @@ -235,12 +224,12 @@ function test_syscall_all_disable_one() lttng_enable_kernel_syscall_ok $SESSION_NAME # 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" + lttng_disable_kernel_syscall_fail $SESSION_NAME "openat" trace_testapp - # 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 "openat" syscall is there. + validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH # ensure "close" syscall is there. validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH @@ -253,7 +242,7 @@ function test_syscall_all_disable_one() function test_syscall_all_disable_two() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_all_disable_two" diag "Syscall trace all events and disable two" @@ -264,13 +253,13 @@ function test_syscall_all_disable_two() lttng_enable_kernel_syscall_ok $SESSION_NAME # 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 "openat" lttng_disable_kernel_syscall_fail $SESSION_NAME "close" trace_testapp - # 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 "openat" syscall is there. + validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH # ensure "close" syscall is there. validate_trace_exp "-e syscall_entry_close: -e compat_syscall_entry_close:" $TRACE_PATH @@ -287,7 +276,7 @@ function test_syscall_all_disable_two() function test_syscall_enable_all_disable_all() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_all_disable_all" diag "Syscall trace all events and disable all" @@ -311,7 +300,7 @@ function test_syscall_enable_all_disable_all() function test_syscall_enable_all_disable_all_enable_all() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_all_disable_all_enable_all" diag "Syscall trace all events and enable/disable all" @@ -328,8 +317,8 @@ function test_syscall_enable_all_disable_all_enable_all() trace_testapp # ensure at least open and close are there. - validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH - validate_trace_exp "-e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH + validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH + validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH 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 # trace may contain other syscalls. @@ -339,9 +328,99 @@ function test_syscall_enable_all_disable_all_enable_all() rm -rf $TRACE_PATH } +function test_syscall_enable_all_enable_one_disable_all() +{ + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + SESSION_NAME="kernel_syscall_enable_all_enable_one_disable_all" + + diag "Syscall trace all events, enable one and disable all" + + create_lttng_session_ok $SESSION_NAME "$TRACE_PATH" + + # enable all syscalls + lttng_enable_kernel_syscall_ok $SESSION_NAME + + # enable one specific syscall, "openat" + lttng_enable_kernel_syscall_ok $SESSION_NAME openat + + # disable all syscalls + lttng_disable_kernel_syscall_ok $SESSION_NAME + + trace_testapp + + # The trace shouldn't contain any syscalls, disable-all should disable + # even individually specified syscalls + trace_match_only openat 0 "$TRACE_PATH" + + destroy_lttng_session_ok $SESSION_NAME + + rm -rf "$TRACE_PATH" +} + +function test_syscall_enable_one_enable_all_disable_one() +{ + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + SESSION_NAME="kernel_syscall_enable_one_enable_all_disable_one" + + diag "Syscall trace all events and enable/disable one" + + create_lttng_session_ok $SESSION_NAME "$TRACE_PATH" + + # enable one specific syscall, "openat" + lttng_enable_kernel_syscall_ok $SESSION_NAME openat + + # enable all syscalls + lttng_enable_kernel_syscall_ok $SESSION_NAME + + # disable one specific syscall, "openat" + lttng_disable_kernel_syscall_ok $SESSION_NAME openat + + trace_testapp + + # The trace should contain all syscalls, including 'openat' because + # enable-all overrides individually disabled syscalls. + validate_trace openat "$TRACE_PATH" + + destroy_lttng_session_ok $SESSION_NAME + + rm -rf "$TRACE_PATH" +} + +function test_syscall_enable_one_enable_all_disable_all_disable_one() +{ + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + SESSION_NAME="kernel_syscall_enable_one_enable_all_disable_all_disable_one" + + diag "Syscall trace all events and enable/disable one" + + create_lttng_session_ok $SESSION_NAME "$TRACE_PATH" + + # enable one specific syscall, "openat" + lttng_enable_kernel_syscall_ok $SESSION_NAME openat + + # enable all syscalls + lttng_enable_kernel_syscall_ok $SESSION_NAME + + # disable all syscalls + lttng_disable_kernel_syscall_ok $SESSION_NAME + + # disable one specific syscall, "openat" + lttng_disable_kernel_syscall_ok $SESSION_NAME openat + + trace_testapp + + # The trace shouldn't contain any syscalls, disable-all should disable + # even individually specified syscalls + trace_match_only openat 0 "$TRACE_PATH" + + destroy_lttng_session_ok $SESSION_NAME + + rm -rf "$TRACE_PATH" +} + function test_syscall_enable_all_disable_all_twice() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_all_disable_all_twice" diag "Syscall trace all events and enable/disable all twice" @@ -369,7 +448,7 @@ function test_syscall_enable_all_disable_all_twice() function test_syscall_enable_one_disable_one() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_one_disable_one" diag "Syscall trace one event and disable one" @@ -377,9 +456,9 @@ function test_syscall_enable_one_disable_one() create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable open system call - lttng_enable_kernel_syscall_ok $SESSION_NAME "open" + lttng_enable_kernel_syscall_ok $SESSION_NAME "openat" # disable open system call - lttng_disable_kernel_syscall_ok $SESSION_NAME "open" + lttng_disable_kernel_syscall_ok $SESSION_NAME "openat" trace_testapp @@ -393,7 +472,7 @@ function test_syscall_enable_one_disable_one() function test_syscall_enable_two_disable_two() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_two_disable_two" diag "Syscall trace two events and disable two" @@ -401,10 +480,10 @@ function test_syscall_enable_two_disable_two() create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable open and close system calls - lttng_enable_kernel_syscall_ok $SESSION_NAME "open" + lttng_enable_kernel_syscall_ok $SESSION_NAME "openat" lttng_enable_kernel_syscall_ok $SESSION_NAME "close" # disable open and close system calls - lttng_disable_kernel_syscall_ok $SESSION_NAME "open" + lttng_disable_kernel_syscall_ok $SESSION_NAME "openat" lttng_disable_kernel_syscall_ok $SESSION_NAME "close" trace_testapp @@ -419,7 +498,7 @@ function test_syscall_enable_two_disable_two() function test_syscall_enable_two_disable_one() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_two_disable_one" diag "Syscall trace two events and disable one" @@ -427,7 +506,7 @@ function test_syscall_enable_two_disable_one() create_lttng_session_ok $SESSION_NAME $TRACE_PATH # enable open and close system calls - lttng_enable_kernel_syscall_ok $SESSION_NAME "open" + lttng_enable_kernel_syscall_ok $SESSION_NAME "openat" lttng_enable_kernel_syscall_ok $SESSION_NAME "close" # disable close system call lttng_disable_kernel_syscall_ok $SESSION_NAME "close" @@ -435,11 +514,11 @@ function test_syscall_enable_two_disable_one() trace_testapp # ensure open is there. - validate_trace_exp "-e syscall_entry_open: -e compat_syscall_entry_open:" $TRACE_PATH - validate_trace_exp "-e syscall_exit_open: -e compat_syscall_exit_open:" $TRACE_PATH + validate_trace_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat:" $TRACE_PATH + validate_trace_exp "-e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH # 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 + validate_trace_only_exp "-e syscall_entry_openat: -e compat_syscall_entry_openat: -e syscall_exit_openat: -e compat_syscall_exit_openat:" $TRACE_PATH destroy_lttng_session_ok $SESSION_NAME @@ -448,18 +527,18 @@ function test_syscall_enable_two_disable_one() function test_syscall_disable_twice() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_disable_twice" diag "Syscall trace one event and disable twice" create_lttng_session_ok $SESSION_NAME $TRACE_PATH - lttng_enable_kernel_syscall_ok $SESSION_NAME "open" + lttng_enable_kernel_syscall_ok $SESSION_NAME "openat" # First disable will succeed - lttng_disable_kernel_syscall_ok $SESSION_NAME "open" + lttng_disable_kernel_syscall_ok $SESSION_NAME "openat" # Second disable succeeds too, due to enabler semantic. - lttng_disable_kernel_syscall_ok $SESSION_NAME "open" + lttng_disable_kernel_syscall_ok $SESSION_NAME "openat" destroy_lttng_session_ok $SESSION_NAME @@ -468,7 +547,7 @@ function test_syscall_disable_twice() function test_syscall_disable_all_twice() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_disable_all_twice" diag "Syscall trace all events and disable all twice" @@ -489,7 +568,7 @@ function test_syscall_disable_all_twice() function test_syscall_enable_unknown() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_unknown" diag "Syscall enable an unknown event" @@ -507,7 +586,7 @@ function test_syscall_enable_unknown() function test_syscall_enable_all_enable_one() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_all_enable_one" diag "Syscall enable all and enable one" @@ -516,7 +595,7 @@ function test_syscall_enable_all_enable_one() lttng_enable_kernel_syscall_ok $SESSION_NAME # Enabling an event already enabled succeeds, due to enabler semantic. - lttng_enable_kernel_syscall_ok $SESSION_NAME "open" + lttng_enable_kernel_syscall_ok $SESSION_NAME "openat" destroy_lttng_session_ok $SESSION_NAME @@ -525,7 +604,7 @@ function test_syscall_enable_all_enable_one() function test_syscall_disable_all_disable_one() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_all_enable_one" diag "Syscall disable all and disable one" @@ -535,7 +614,7 @@ function test_syscall_disable_all_disable_one() 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" + lttng_disable_kernel_syscall_fail $SESSION_NAME "openat" destroy_lttng_session_ok $SESSION_NAME @@ -544,7 +623,7 @@ function test_syscall_disable_all_disable_one() function test_syscall_enable_channel_disable_all() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_channel_disable_all" CHANNEL_NAME="channel" @@ -564,7 +643,7 @@ function test_syscall_enable_channel_disable_all() function test_syscall_enable_channel_disable_one() { - TRACE_PATH=$(mktemp -d) + local TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_syscall_enable_channel_disable_all" CHANNEL_NAME="channel" @@ -573,7 +652,7 @@ function test_syscall_enable_channel_disable_one() 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 + lttng_disable_kernel_syscall_fail $SESSION_NAME "openat" $CHANNEL_NAME destroy_lttng_session_ok $SESSION_NAME @@ -593,6 +672,7 @@ fi skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || { + validate_lttng_modules_present start_lttng_sessiond test_syscall_event_list @@ -606,6 +686,9 @@ skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || test_syscall_enable_all_disable_all test_syscall_enable_all_disable_all_enable_all test_syscall_enable_all_disable_all_twice + test_syscall_enable_all_enable_one_disable_all + test_syscall_enable_one_enable_all_disable_one + test_syscall_enable_one_enable_all_disable_all_disable_one test_syscall_enable_one_disable_one test_syscall_enable_two_disable_two test_syscall_enable_two_disable_one