LISTFILTER: Remove outdated ERROR message.

Feeding LISTFILTER an empty variable results in an invalid ERROR message.
Earlier changes made the message useless because we can no longer tell if
the variable is empty or does not exist.  It is valid to try to remove a
value from an empty list just as it is valid to try to remove a value that
is not in a non-empty list.

* Removed the outdated ERROR message.

* Added more test cases to the LISTFILTER unit test.

Change-Id: Ided9040e6359c44a335ef54e02ef5950a1863134
changes/58/4758/1
Richard Mudgett 8 years ago
parent b4fa17f516
commit cfe72c39cf

@ -617,7 +617,6 @@ static int listfilter(struct ast_channel *chan, const char *cmd, char *parse, ch
}
ast_str_substitute_variables(&orig_list, 0, chan, varsubst);
if (!ast_str_strlen(orig_list)) {
ast_log(LOG_ERROR, "List variable '%s' not found\n", args.listname);
if (chan) {
ast_channel_unlock(chan);
}

@ -285,7 +285,16 @@ AST_TEST_DEFINE(test_substitution)
TEST(test_expected_result(test, c, "A${${baz}o:-2:1}A", "A2A"));
TEST(test_expected_result(test, c, "A${${baz}o:-2:-1}A", "A2A"));
pbx_builtin_setvar_helper(c, "list1", "ab&cd&ef");
TEST(test_expected_result(test, c, "${LISTFILTER(list1,&,ab)}", "cd&ef"));
TEST(test_expected_result(test, c, "${LISTFILTER(list1,&,cd)}", "ab&ef"));
TEST(test_expected_result(test, c, "${LISTFILTER(list1,&,ef)}", "ab&cd"));
TEST(test_expected_result(test, c, "${LISTFILTER(list1,&,gh)}", "ab&cd&ef"));
TEST(test_expected_result(test, c, "${LISTFILTER(list1,&,c)}", "ab&cd&ef"));
TEST(test_expected_result(test, c, "${LISTFILTER(list1,&,d)}", "ab&cd&ef"));
pbx_builtin_setvar_helper(c, "list2", "ab");
TEST(test_expected_result(test, c, "${LISTFILTER(list2,&,ab)}", ""));
pbx_builtin_setvar_helper(c, "list_empty", "");
TEST(test_expected_result(test, c, "${LISTFILTER(list_empty,&,ab)}", ""));
TEST(test_expected_result(test, c, "${SHELL(printf '%d' 123)},${SHELL(printf '%d' 456)}", "123,456"));
TEST(test_expected_result(test, c, "${foo},${CDR(answer)},${SHELL(printf '%d' 456)}", "123,,456"));
TEST(test_expected_result(test, c, "${foo},${CDR(answer,u)},${SHELL(printf '%d' 456)}", "123,0.000000,456"));

Loading…
Cancel
Save