X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fregression%2Ftools%2Ftrigger%2Ftest_remove_trigger_cli;h=3f1577ead40356566948acb74c3a96def261a16e;hb=fa182fe058682b855a353931e5ef1994325c3da3;hp=582cce7ef3fe4958aef349d455b145354601d4ae;hpb=90aa04a116a8be510b9d256b47de6bbb4144fb8b;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 582cce7ef..3f1577ead 100755 --- a/tests/regression/tools/trigger/test_remove_trigger_cli +++ b/tests/regression/tools/trigger/test_remove_trigger_cli @@ -23,13 +23,13 @@ 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) @@ -51,54 +51,134 @@ 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 -lttng_add_trigger_ok "ABC" --condition on-event aaa -u --filter 'p == 2' --action notify -lttng_add_trigger_ok "DEF" --condition on-event -u -a --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) - tracer notifications discarded: 0 +- name: ABC + owner uid: ${uid} + condition: event rule matches + rule: aaa (type: user tracepoint, filter: p == 2) + errors: none actions: notify -- id: DEF - user id: ${uid} - condition: event rule hit - rule: * (type: tracepoint, domain: ust) - tracer notifications discarded: 0 + 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: DEF - user id: ${uid} - condition: event rule hit - rule: * (type: tracepoint, domain: ust) - tracer notifications discarded: 0 +- 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}" @@ -106,6 +186,8 @@ remove_trigger "DEF" list_triggers "no triggers left" "/dev/null" +test_mi + # Cleanup stop_lttng_sessiond_notap rm -f "${tmp_stdout}"