]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
LISTFILTER: Remove outdated ERROR message. 56/4756/1
authorRichard Mudgett <rmudgett@digium.com>
Sun, 22 Jan 2017 23:25:57 +0000 (17:25 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Sun, 22 Jan 2017 23:46:02 +0000 (17:46 -0600)
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
tests/test_substitution.c

index efa4bfda71f32cd2ef57d7203d669d0aa912bb51..c76bddc51e935b5efa1671a8bb3e7b53bcdaa025 100644 (file)
@@ -619,7 +619,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);
                }
index 46e8ce920ddf413a0760ddfb3cafb9c3f78bd5cd..2635430a45e3a42edf4f379f3ab4dc069a4cb8fc 100644 (file)
@@ -287,7 +287,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"));