mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-08 16:11:18 +00:00
Added test for parse_url()
This commit is contained in:
1 parent
3536670b82
commit
1bede7e28b
2 files changed
+20
-3
No files matched your search
@@ -502,6 +502,21 @@ static const char *test_rewrites(void) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *test_mg_parse_url(void) {
|
||||||
|
unsigned short port;
|
||||||
|
char a[100], b[100];
|
||||||
|
ASSERT(parse_url("", a, sizeof(a), b, sizeof(b), &port) == 0);
|
||||||
|
ASSERT(parse_url("ws://foo ", a, sizeof(a), b, sizeof(b), &port) == 8);
|
||||||
|
ASSERT(strcmp(a, "ws") == 0 && strcmp(b, "foo") == 0 && port == 80);
|
||||||
|
ASSERT(parse_url("xx://y:123 ", a, sizeof(a), b, sizeof(b), &port) == 10);
|
||||||
|
ASSERT(strcmp(a, "xx") == 0 && strcmp(b, "y") == 0 && port == 123);
|
||||||
|
ASSERT(parse_url(" foo ", a, sizeof(a), b, sizeof(b), &port) == 0);
|
||||||
|
ASSERT(parse_url(" foo:44 ", a, sizeof(a), b, sizeof(b), &port) == 0);
|
||||||
|
ASSERT(parse_url("foo:44 ", a, sizeof(a), b, sizeof(b), &port) == 6);
|
||||||
|
ASSERT(strcmp(a, "") == 0 && strcmp(b, "foo") == 0 && port == 44);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static const char *run_all_tests(void) {
|
static const char *run_all_tests(void) {
|
||||||
RUN_TEST(test_should_keep_alive);
|
RUN_TEST(test_should_keep_alive);
|
||||||
RUN_TEST(test_match_prefix);
|
RUN_TEST(test_match_prefix);
|
||||||
@@ -518,6 +533,7 @@ static const char *run_all_tests(void) {
|
|||||||
RUN_TEST(test_mg_set_option);
|
RUN_TEST(test_mg_set_option);
|
||||||
RUN_TEST(test_server);
|
RUN_TEST(test_server);
|
||||||
RUN_TEST(test_rewrites);
|
RUN_TEST(test_rewrites);
|
||||||
|
RUN_TEST(test_mg_parse_url);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -3992,11 +3992,12 @@ static int parse_url(const char *url, char *proto, size_t plen,
|
|||||||
snprintf(fmt3, sizeof(fmt3), "%%%zu[^: ]:%%hu%%n", hlen);
|
snprintf(fmt3, sizeof(fmt3), "%%%zu[^: ]:%%hu%%n", hlen);
|
||||||
|
|
||||||
if (sscanf(url, fmt1, proto, host, port, &n) == 3 ||
|
if (sscanf(url, fmt1, proto, host, port, &n) == 3 ||
|
||||||
sscanf(url, fmt2, proto, host, &n) == 2 ||
|
sscanf(url, fmt2, proto, host, &n) == 2) {
|
||||||
sscanf(url, fmt3, host, port, &n) == 2) {
|
return n;
|
||||||
|
} else if (sscanf(url, fmt3, host, port, &n) == 2) {
|
||||||
|
proto[0] = '\0';
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user