X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fregression%2Ftools%2Ftrigger%2Ftest_remove_trigger_cli;h=aafbe4e24df1eec858ccd229ca9c92936a6467c7;hb=dcd975d1c32dfbbcdd122a97649a9189d9a42e25;hp=168227a4ab84d404205ca6414e336119380d787c;hpb=b61776fb63d4bb14df77c0b5a15de28beed7ddfc;p=lttng-tools.git diff --git a/tests/regression/tools/trigger/test_remove_trigger_cli b/tests/regression/tools/trigger/test_remove_trigger_cli index 168227a4a..aafbe4e24 100755 --- a/tests/regression/tools/trigger/test_remove_trigger_cli +++ b/tests/regression/tools/trigger/test_remove_trigger_cli @@ -23,23 +23,17 @@ TESTDIR="$CURDIR/../../.." # shellcheck source=../../../utils/utils.sh source "$TESTDIR/utils/utils.sh" -plan_tests 17 +plan_tests 22 FULL_LTTNG_BIN="${TESTDIR}/../src/bin/lttng/${LTTNG_BIN}" -tmp_stdout=$(mktemp -t test_list_triggers_cli_stdout.XXXXXX) -tmp_stderr=$(mktemp -t test_list_triggers_cli_stderr.XXXXXX) -tmp_expected_stdout=$(mktemp -t test_list_triggers_cli_expected_stdout.XXXXXX) +tmp_stdout=$(mktemp --tmpdir -t test_remove_triggers_cli_stdout.XXXXXX) +tmp_stderr=$(mktemp --tmpdir -t test_remove_triggers_cli_stderr.XXXXXX) +tmp_expected_stdout=$(mktemp --tmpdir -t test_remove_triggers_cli_expected_stdout.XXXXXX) uid=$(id --user) gid=$(id --group) -function add_trigger () -{ - "${FULL_LTTNG_BIN}" add-trigger "$@" - ok $? "add trigger \`$*\`: exit code is 0" -} - function list_triggers () { local test_name="$1" @@ -57,58 +51,143 @@ function list_triggers () function remove_trigger () { - local id="$1" - local test_name="remove trigger ${id}" + local name="$1" + local test_name="remove trigger ${name}" - "${FULL_LTTNG_BIN}" remove-trigger "${id}" > "${tmp_stdout}" 2> "${tmp_stderr}" + "${FULL_LTTNG_BIN}" remove-trigger "${name}" > "${tmp_stdout}" 2> "${tmp_stderr}" ok $? "${test_name}: exit code is 0" - diff -u <(echo "Removed trigger \`${id}\`.") "${tmp_stdout}" + diff -u <(echo "Removed trigger \`${name}\`.") "${tmp_stdout}" ok $? "${test_name}: expected stdout" diff -u /dev/null "${tmp_stderr}" ok $? "${test_name}: expected stderr" } +function test_mi () +{ + local tmp_stdout_raw + local tmp_expected_stdout + + # Concretely the code used to serialize a trigger object is the same as + # the one used by the list command. Here we simply validate that a + # simple trigger is correctly generated on removal for MI. + + tmp_stdout_raw=$(mktemp --tmpdir -t "tmp.${FUNCNAME[0]}_stdout.XXXXXX") + tmp_expected_stdout=$(mktemp --tmpdir -t "tmp.${FUNCNAME[0]}_expected_stdout.XXXXXX") + + diag "${FULL_LTTNG_BIN} --mi=xml remove-trigger" + + cat > "${tmp_expected_stdout}" <<- EOF + + + remove-trigger + + + mi + ${UID} + + + + + mi_aa + p == 2 + + + + + + + + + + + + 1 + + + + + + + + + true + + EOF + + # Add a trigger + lttng_add_trigger_ok "mi" --condition event-rule-matches --name=mi_aa --type=user --filter 'p == 2' --action notify + + # Remove it + "${FULL_LTTNG_BIN}" --mi xml remove-trigger mi > "${tmp_stdout_raw}" 2> "${tmp_stderr}" + ok $? "remove-trigger mi: exit code is 0" + + # Pretty-fy xml before further test. + $XML_PRETTY < "${tmp_stdout_raw}" > "${tmp_stdout}" + + $MI_VALIDATE "${tmp_stdout}" + ok $? "remove-trigger mi is valid" + + diff -u "${tmp_expected_stdout}" "${tmp_stdout}" + ok $? "mi: expected stdout" + + diff -u "${tmp_stderr}" /dev/null + ok $? "mi: expected stderr" + + rm -f "${tmp_stdout_raw}" +} + # shellcheck disable=SC2119 start_lttng_sessiond_notap # Add a few triggers -add_trigger --condition on-event -u -a --action notify -add_trigger --id ABC --condition on-event aaa -u --filter 'p == 2' --action notify +lttng_add_trigger_ok "ABC" --condition event-rule-matches --name=aaa --type=user --filter 'p == 2' --action notify +lttng_add_trigger_ok "DEF" --condition event-rule-matches --type=user --action notify cat > "${tmp_expected_stdout}" <<- EOF -- id: ABC - user id: ${uid} - condition: event rule hit - rule: aaa (type: tracepoint, domain: ust, filter: p == 2) +- name: ABC + owner uid: ${uid} + condition: event rule matches + rule: aaa (type: user tracepoint, filter: p == 2) + errors: none actions: notify -- id: T0 - user id: ${uid} - condition: event rule hit - rule: * (type: tracepoint, domain: ust) + errors: none + errors: none +- name: DEF + owner uid: ${uid} + condition: event rule matches + rule: * (type: user tracepoint) + errors: none actions: notify + errors: none + errors: none EOF list_triggers "two triggers left" "${tmp_expected_stdout}" remove_trigger "ABC" cat > "${tmp_expected_stdout}" <<- EOF -- id: T0 - user id: ${uid} - condition: event rule hit - rule: * (type: tracepoint, domain: ust) +- name: DEF + owner uid: ${uid} + condition: event rule matches + rule: * (type: user tracepoint) + errors: none actions: notify + errors: none + errors: none EOF list_triggers "one trigger left" "${tmp_expected_stdout}" -remove_trigger "T0" +remove_trigger "DEF" list_triggers "no triggers left" "/dev/null" +test_mi + # Cleanup stop_lttng_sessiond_notap rm -f "${tmp_stdout}"