diff --git a/funcs/func_strings.c b/funcs/func_strings.c index 885de61c57eb752f5f486657b7547bdc67c313c9..2d03c15e8c01dee4502f5587018f3fe850f8fe46 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 ca84d002356012ac4e6ef1a29232fc6e630af6db..3a1dc1fbac8550fb950d3e0d2d08cf1505f9cd57 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"));