[asterisk-commits] dvossel: branch dvossel/sip_string_parse_testing r244327 - /team/dvossel/sip_...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Feb 2 12:10:48 CST 2010
Author: dvossel
Date: Tue Feb 2 12:10:47 2010
New Revision: 244327
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=244327
Log:
improved config and resquest/response testing for failure cases
Modified:
team/dvossel/sip_string_parse_testing/channels/sip/config-parser.c
team/dvossel/sip_string_parse_testing/channels/sip/reqresp-parser.c
Modified: team/dvossel/sip_string_parse_testing/channels/sip/config-parser.c
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/sip_string_parse_testing/channels/sip/config-parser.c?view=diff&rev=244327&r1=244326&r2=244327
==============================================================================
--- team/dvossel/sip_string_parse_testing/channels/sip/config-parser.c (original)
+++ team/dvossel/sip_string_parse_testing/channels/sip/config-parser.c Tue Feb 2 12:10:47 2010
@@ -69,6 +69,10 @@
if (!value) {
return -1;
}
+
+ if (!reg) {
+ return -1;
+ }
ast_copy_string(buf, value, sizeof(buf));
/*! register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]
@@ -223,6 +227,8 @@
const char *reg6 = "tls://name@namedomain:pass:authuser@domain/extension~111";
const char *reg7 = "peer?tcp://name@namedomain:pass:authuser@domain:1234/extension~111";
const char *reg8 = "peer?name at namedomain:pass:authuser at domain:1234/extension~111";
+ const char *reg9 = "peer?name:pass:authuser:1234/extension~111";
+ const char *reg10 = "@domin:1234";
switch (cmd) {
case TEST_INIT:
@@ -453,6 +459,46 @@
ast_string_field_free_memory(reg);
ast_free(reg);
+ /* ---Test reg 9, missing domain, expected to fail --- */
+ if (!(reg = ast_calloc_with_stringfields(1, struct sip_registry, 256))) {
+ goto alloc_fail;
+ } else if (!sip_parse_register_line(reg, reg9, 1)) {
+
+ ast_str_append(&args->ast_test_error_str, 0, "Test 9, missing domain, expected to fail but did not.\n");
+ res = AST_TEST_FAIL;
+ }
+ ast_string_field_free_memory(reg);
+ ast_free(reg);
+
+ /* ---Test reg 10, missing user, expected to fail --- */
+ if (!(reg = ast_calloc_with_stringfields(1, struct sip_registry, 256))) {
+ goto alloc_fail;
+ } else if (!sip_parse_register_line(reg, reg10, 1)) {
+
+ ast_str_append(&args->ast_test_error_str, 0, "Test 10, missing user expected to fail but did not\n");
+ res = AST_TEST_FAIL;
+ }
+ ast_string_field_free_memory(reg);
+ ast_free(reg);
+
+ /* ---Test reg 11, no registry object, expected to fail--- */
+ if (!sip_parse_register_line(NULL, reg1, 1)) {
+
+ ast_str_append(&args->ast_test_error_str, 0, "Test 11, no registery object, expected to fail but did not.\n");
+ res = AST_TEST_FAIL;
+ }
+
+ /* ---Test reg 11, no registry line, expected to fail --- */
+ if (!(reg = ast_calloc_with_stringfields(1, struct sip_registry, 256))) {
+ goto alloc_fail;
+ } else if (!sip_parse_register_line(reg, NULL, 1)) {
+
+ ast_str_append(&args->ast_test_error_str, 0, "Test 11, NULL register line expected to fail but did not.\n");
+ res = AST_TEST_FAIL;
+ }
+ ast_string_field_free_memory(reg);
+ ast_free(reg);
+
return res;
Modified: team/dvossel/sip_string_parse_testing/channels/sip/reqresp-parser.c
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/sip_string_parse_testing/channels/sip/reqresp-parser.c?view=diff&rev=244327&r1=244326&r2=244327
==============================================================================
--- team/dvossel/sip_string_parse_testing/channels/sip/reqresp-parser.c (original)
+++ team/dvossel/sip_string_parse_testing/channels/sip/reqresp-parser.c Tue Feb 2 12:10:47 2010
@@ -122,7 +122,7 @@
char uri1[] = "sip:name at host";
char uri2[] = "sip:name at host;transport=tcp";
char uri3[] = "sip:name:secret at host;transport=tcp";
- char uri4[] = "sip:name:secret at host:port;transport=tcp?headers";
+ char uri4[] = "sip:name:secret at host:port;transport=tcp?headers=%40%40testblah&headers2=blah%20blah";
switch (cmd) {
case TEST_INIT:
info->name = "sip_uri_parse_test";
@@ -185,6 +185,20 @@
strcmp(transport, "tcp")) {
ast_str_append(&args->ast_test_error_str, 0, "Test 4: add port and unparsed header field failed.\n");
+ res = AST_TEST_FAIL;
+ }
+
+ /* Test 5, verify parse_uri does not crash when given a NULL uri */
+ name = pass = domain = port = transport = NULL;
+ if (!parse_uri(NULL, "sip:,sips:", &name, &pass, &domain, &port, &transport)) {
+ ast_str_append(&args->ast_test_error_str, 0, "Test 5: passing a NULL uri failed.\n");
+ res = AST_TEST_FAIL;
+ }
+
+ /* Test 6, verify parse_uri does not crash when given a NULL output parameters */
+ name = pass = domain = port = transport = NULL;
+ if (parse_uri(uri4, "sip:,sips:", NULL, NULL, NULL, NULL, NULL)) {
+ ast_str_append(&args->ast_test_error_str, 0, "Test 6: passing NULL output parameters failed.\n");
res = AST_TEST_FAIL;
}
More information about the asterisk-commits
mailing list