]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
LISTFILTER: Remove outdated ERROR message. 57/4757/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:00 +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 255e846531252761173be9ff276f5747e1ef7cbd..ccd78fe7bc1f5301641dc1bef486048e593386c2 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 c22f5e603d2a96b6290e05691859c3640101530b..35900d8eacbbd9d59fd0bfc27528a6a9239089c9 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"));