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
This commit is contained in:
Richard Mudgett 2017-01-22 17:25:57 -06:00
parent b4fa17f516
commit cfe72c39cf
2 changed files with 9 additions and 1 deletions

View File

@ -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);
}

View File

@ -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"));