# shellcheck source=../../../utils/utils.sh
source "$TESTDIR/utils/utils.sh"
-plan_tests 289
+plan_tests 295
FULL_LTTNG_BIN="${TESTDIR}/../src/bin/lttng/${LTTNG_BIN}"
# shellcheck disable=SC2119
start_lttng_sessiond_notap
-tmp_stdout=$(mktemp --tmpdir -t test_parse_cli_trigger_stdout.XXXXXX)
-tmp_stderr=$(mktemp --tmpdir -t test_parse_cli_trigger_stderr.XXXXXX)
+tmp_stdout=$(mktemp -t test_parse_cli_trigger_stdout.XXXXXX)
+tmp_stderr=$(mktemp -t test_parse_cli_trigger_stderr.XXXXXX)
uprobe_elf_binary="${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary"
-if [ "$(id -u)" == "0" ]; then
- ist_root=1
-else
- ist_root=0
-fi
-
function test_success ()
{
local test_name="$1"
shift 2
diag "${FULL_LTTNG_BIN} add-trigger $*"
- set -x
"${FULL_LTTNG_BIN}" add-trigger "$@" > "${tmp_stdout}" 2> "${tmp_stderr}"
ok $? "${test_name}: exit code is 0"
- set +x
diff -u "${tmp_stdout}" <(echo "Added trigger \`$trigger_name\`.")
ok $? "${test_name}: expected stdout"
# the one used by the list command. Here we simply validate that a
# simple trigger is correctly generated.
- tmp_stdout_raw=$(mktemp --tmpdir -t "tmp.${FUNCNAME[0]}_stdout.XXXXXX")
- tmp_expected_stdout=$(mktemp --tmpdir -t "tmp.${FUNCNAME[0]}_expected_stdout.XXXXXX")
+ tmp_stdout_raw=$(mktemp -t "tmp.${FUNCNAME[0]}_stdout.XXXXXX")
+ tmp_expected_stdout=$(mktemp -t "tmp.${FUNCNAME[0]}_expected_stdout.XXXXXX")
diag "${FULL_LTTNG_BIN} --mi=xml add-trigger"
--condition event-rule-matches --type=user --name='jean-*' --exclude-name jean-chretien -x jean-charest \
--action notify
-skip $ist_root "non-root user: skipping kprobe tests" 18 || {
+check_skip_kernel_test 18 "Skipping kprobe tests." || {
i=0
for type in kprobe kernel:kprobe; do
done
}
-skip $ist_root "non-root user: skipping uprobe tests" 6 || {
+check_skip_kernel_test 6 "Skipping uprobe tests." || {
test_success "--condition event-rule-matches uprobe" "uprobe-trigger-0" \
--name="uprobe-trigger-0" \
--condition event-rule-matches --type=kernel:uprobe --location=${uprobe_elf_binary}:test_function --event-name=ma-probe \
--action notify
}
-skip $ist_root "non-root user: skipping syscall tests" 30 || {
+check_skip_kernel_test 30 "Skipping syscall tests." || {
test_success "--condition event-rule-matches one syscall" "syscall-trigger-0" \
--name="syscall-trigger-0" \
--condition event-rule-matches --type=syscall --name=open \
# `--condition` failures
test_failure "missing args after --condition" \
- "Error: While parsing argument #2 (\`--condition\`): Missing required argument for option \`--condition\`" \
+ "Error: While parsing argument #2 (\`--condition\`): Missing required argument for option \`--condition\`
+Error: Valid condition names are:
+Error: event-rule-matches" \
--condition
test_failure "unknown --condition" \
- "Error: While parsing argument #2 (\`--condition\`): Unknown condition name 'zoofest'" \
+ "Error: While parsing argument #2 (\`--condition\`): Unknown condition name 'zoofest'
+Error: Valid condition names are:
+Error: event-rule-matches" \
--condition zoofest
test_failure "unknown --condition=" \
- "Error: While parsing argument #2 (\`--condition=zoofest\`): Unknown condition name 'zoofest'" \
+ "Error: While parsing argument #2 (\`--condition=zoofest\`): Unknown condition name 'zoofest'
+Error: Valid condition names are:
+Error: event-rule-matches" \
--condition=zoofest
# `--condition event-rule-matches` failures
--name=open
test_failure "--exclude-name with non-glob name" \
- "Error: Event jean: Exclusions can only be used with a globbing pattern" \
+ "Error: Event name pattern must contain wildcard characters to use exclusions" \
--condition event-rule-matches --type=user --name='jean' --exclude-name jean-chretien \
--action notify
# `--action` failures
test_failure "missing args after --action" \
- "Error: While parsing argument #5 (\`--action\`): Missing required argument for option \`--action\`" \
+ "Error: While parsing argument #5 (\`--action\`): Missing required argument for option \`--action\`
+Error: Valid action names are:
+Error: notify" \
--condition event-rule-matches --type=user \
--action
+test_failure "unknown --action" \
+ "Error: While parsing argument #5 (\`--action\`): Unknown action name 'zoofest'
+Error: Valid action names are:
+Error: notify" \
+ --condition event-rule-matches --type=user \
+ --action zoofest
+
+test_failure "unknown --action=" \
+ "Error: While parsing argument #5 (\`--action=zoofest\`): Unknown action name 'zoofest'
+Error: Valid action names are:
+Error: notify" \
+ --condition event-rule-matches --type=user \
+ --action=zoofest
+
# `--action notify` failures
test_failure "extra arg after --action notify" \
"Error: Unexpected argument \`bob\`." \