summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGeorge Joseph <george.joseph@fairview5.com>2015-05-14 17:01:56 -0600
committerGeorge Joseph <george.joseph@fairview5.com>2015-05-15 16:18:11 -0600
commitdd78ab42e4316c53fa517ca19956d9be38f368a5 (patch)
treedd26c3896768f61a4c426504dfd300f72d4d3020 /tests
parent091b436007c55fbcc827cceb97a414a172aa36af (diff)
res_pjsip_config_wizard/config: Fix template processing
The config wizard was always pulling the first occurrence of a variable from an ast_variable list but this gets the template value from the list instead of any overridden value. This patch creates ast_variable_find_last_in_list() in config.c and updates res_pjsip_config_wizard to use it instead of ast_variable_find_in_list. Now the overridden values, where they exist, are used instead of template variables. Updated test_config to test the new API. ASTERISK-25089 #close Reported-by: George Joseph <george.joseph@fairview5.com> Tested-by: George Joseph <george.joseph@fairview5.com> Change-Id: Ifa7ddefc956a463923ee6839dd1ebe021c299de4
Diffstat (limited to 'tests')
-rw-r--r--tests/test_config.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_config.c b/tests/test_config.c
index df618f9f7..b9935dc79 100644
--- a/tests/test_config.c
+++ b/tests/test_config.c
@@ -234,6 +234,7 @@ AST_TEST_DEFINE(config_basic_ops)
struct ast_config *cfg = NULL;
struct ast_category *cat = NULL;
struct ast_variable *var;
+ struct ast_variable *varlist;
char temp[32];
const char *cat_name;
const char *var_value;
@@ -537,6 +538,22 @@ AST_TEST_DEFINE(config_basic_ops)
goto out;
}
+ varlist = ast_variable_new("name1", "value1", "");
+ ast_variable_list_append_hint(&varlist, NULL, ast_variable_new("name1", "value2", ""));
+ ast_variable_list_append_hint(&varlist, NULL, ast_variable_new("name1", "value3", ""));
+
+ var_value = ast_variable_find_in_list(varlist, "name1");
+ if (strcmp(var_value, "value1") != 0) {
+ ast_test_status_update(test, "Wrong variable retrieved %s.\n", var_value);
+ goto out;
+ }
+
+ var_value = ast_variable_find_last_in_list(varlist, "name1");
+ if (strcmp(var_value, "value3") != 0) {
+ ast_test_status_update(test, "Wrong variable retrieved %s.\n", var_value);
+ goto out;
+ }
+
res = AST_TEST_PASS;
out: