]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
LISTFILTER: Remove outdated ERROR message. 58/4758/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:56:15 +0000 (17:56 -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 885de61c57eb752f5f486657b7547bdc67c313c9..2d03c15e8c01dee4502f5587018f3fe850f8fe46 100644 (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);
                }
index ca84d002356012ac4e6ef1a29232fc6e630af6db..3a1dc1fbac8550fb950d3e0d2d08cf1505f9cd57 100644 (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"));