aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_utils.c
diff options
context:
space:
mode:
authordvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2010-03-02 23:38:29 +0000
committerdvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2010-03-02 23:38:29 +0000
commit87fa537a2829ea0e7844654dc7c6f86f2b914c1c (patch)
treee7849aa948fd7f3f5d47c0f36c417a63b8c7e9db /tests/test_utils.c
parentee037a2f38eb3acff001a75b7f8caa9039a510c2 (diff)
base64 unit test
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@250235 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'tests/test_utils.c')
-rw-r--r--tests/test_utils.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/test_utils.c b/tests/test_utils.c
index b79da926f..78a0ba785 100644
--- a/tests/test_utils.c
+++ b/tests/test_utils.c
@@ -185,11 +185,64 @@ AST_TEST_DEFINE(sha1_test)
return res;
}
+AST_TEST_DEFINE(base64_test)
+{
+ static const struct {
+ const char *input;
+ const char *decoded;
+ } tests[] = {
+ { "giraffe",
+ "Z2lyYWZmZQ==" },
+ { "platypus",
+ "cGxhdHlwdXM=" },
+ { "ParastratiosphecomyiaStratiosphecomyioides",
+ "UGFyYXN0cmF0aW9zcGhlY29teWlhU3RyYXRpb3NwaGVjb215aW9pZGVz" },
+ };
+ int i;
+ enum ast_test_result_state res = AST_TEST_PASS;
+
+ switch (cmd) {
+ case TEST_INIT:
+ info->name = "base64_test";
+ info->category = "main/utils/";
+ info->summary = "base64 test";
+ info->description = "This test exercises the base64 conversions.";
+ return AST_TEST_NOT_RUN;
+ case TEST_EXECUTE:
+ break;
+ }
+
+
+ for (i = 0; i < ARRAY_LEN(tests); i++) {
+ char tmp[64];
+ ast_base64encode(tmp, (unsigned char *)tests[i].input, strlen(tests[i].input), sizeof(tmp));
+ if (strcasecmp(tmp, tests[i].decoded)) {
+ ast_test_status_update(test,
+ "input: '%s' base64 output: '%s' expected base64 output: '%s'\n",
+ tests[i].input, tmp, tests[i].decoded);
+ res = AST_TEST_FAIL;
+ }
+
+ memset(tmp, 0, sizeof(tmp));
+ ast_base64decode((unsigned char *) tmp, tests[i].decoded, (sizeof(tmp) - 1));
+ if (strcasecmp(tmp, tests[i].input)) {
+ ast_test_status_update(test,
+ "base64 input: '%s' output: '%s' expected output: '%s'\n",
+ tests[i].decoded, tmp, tests[i].input);
+ res = AST_TEST_FAIL;
+ }
+ }
+
+ return res;
+}
+
+
static int unload_module(void)
{
AST_TEST_UNREGISTER(uri_encode_decode_test);
AST_TEST_UNREGISTER(md5_test);
AST_TEST_UNREGISTER(sha1_test);
+ AST_TEST_UNREGISTER(base64_test);
return 0;
}
@@ -198,6 +251,7 @@ static int load_module(void)
AST_TEST_REGISTER(uri_encode_decode_test);
AST_TEST_REGISTER(md5_test);
AST_TEST_REGISTER(sha1_test);
+ AST_TEST_REGISTER(base64_test);
return AST_MODULE_LOAD_SUCCESS;
}