From 87fa537a2829ea0e7844654dc7c6f86f2b914c1c Mon Sep 17 00:00:00 2001 From: dvossel Date: Tue, 2 Mar 2010 23:38:29 +0000 Subject: base64 unit test git-svn-id: http://svn.digium.com/svn/asterisk/trunk@250235 f38db490-d61c-443f-a65b-d21fe96a405b --- tests/test_utils.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'tests/test_utils.c') 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; } -- cgit v1.2.3