summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMatt Jordan <mjordan@digium.com>2015-06-08 13:16:13 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2015-06-08 13:16:13 -0500
commite29f28e7a5b058ba4a8e7d6edb8514a28fae0ec0 (patch)
treebfa84b94e391249929dafb0d06d6e356319b5fd9 /tests
parent720251f2b80639324a37b2041997292d97858d39 (diff)
parentf5d5aa67dcdc274770c47b1a801a449fb83c2f79 (diff)
Merge "AMI: Escape string values." into 13
Diffstat (limited to 'tests')
-rw-r--r--tests/test_strings.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/test_strings.c b/tests/test_strings.c
index 4321d4a03..ab65037ee 100644
--- a/tests/test_strings.c
+++ b/tests/test_strings.c
@@ -455,6 +455,38 @@ AST_TEST_DEFINE(escape_semicolons_test)
return AST_TEST_PASS;
}
+AST_TEST_DEFINE(escape_test)
+{
+ char buf[128];
+
+#define TEST_ESCAPE(s, to_escape, expected) \
+ !strcmp(ast_escape(buf, s, sizeof(buf) / sizeof(char), to_escape), expected)
+
+ switch (cmd) {
+ case TEST_INIT:
+ info->name = "escape";
+ info->category = "/main/strings/";
+ info->summary = "Test ast_escape";
+ info->description = "Test escaping values in a string";
+ return AST_TEST_NOT_RUN;
+ case TEST_EXECUTE:
+ break;
+ }
+
+ ast_test_validate(test, TEST_ESCAPE("null escape", NULL, "null escape"));
+ ast_test_validate(test, TEST_ESCAPE("no matching escape", "Z", "no matching escape"));
+ ast_test_validate(test, TEST_ESCAPE("escape Z", "Z", "escape \\Z"));
+ ast_test_validate(test, TEST_ESCAPE("Z", "Z", "\\Z"));
+ ast_test_validate(test, TEST_ESCAPE(";;", ";;", "\\;\\;"));
+ ast_test_validate(test, TEST_ESCAPE("escape \n", "\n", "escape \\n"));
+ ast_test_validate(test, TEST_ESCAPE("escape \n again \n", "\n", "escape \\n again \\n"));
+
+ ast_test_validate(test, !strcmp(ast_escape_c(buf, "escape \a\b\f\n\r\t\v\\\'\"\?",
+ sizeof(buf) / sizeof(char)),
+ "escape \\a\\b\\f\\n\\r\\t\\v\\\\\\\'\\\"\\?"));
+ return AST_TEST_PASS;
+}
+
static int unload_module(void)
{
AST_TEST_UNREGISTER(str_test);
@@ -462,6 +494,7 @@ static int unload_module(void)
AST_TEST_UNREGISTER(ends_with_test);
AST_TEST_UNREGISTER(strsep_test);
AST_TEST_UNREGISTER(escape_semicolons_test);
+ AST_TEST_UNREGISTER(escape_test);
return 0;
}
@@ -472,6 +505,7 @@ static int load_module(void)
AST_TEST_REGISTER(ends_with_test);
AST_TEST_REGISTER(strsep_test);
AST_TEST_REGISTER(escape_semicolons_test);
+ AST_TEST_REGISTER(escape_test);
return AST_MODULE_LOAD_SUCCESS;
}