From cfe72c39cfbd66cca9ea409f2eb76d5076ae6fd8 Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Sun, 22 Jan 2017 17:25:57 -0600 Subject: 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 --- funcs/func_strings.c | 1 - tests/test_substitution.c | 9 +++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/funcs/func_strings.c b/funcs/func_strings.c index 885de61c5..2d03c15e8 100644 --- a/funcs/func_strings.c +++ b/funcs/func_strings.c @@ -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); } diff --git a/tests/test_substitution.c b/tests/test_substitution.c index ca84d0023..3a1dc1fba 100644 --- a/tests/test_substitution.c +++ b/tests/test_substitution.c @@ -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")); -- cgit v1.2.3