parent
f795785dce
commit
89e4517772
2 changed files with 32 additions and 1 deletions
11
src/node.c
11
src/node.c
|
@ -592,10 +592,19 @@ node * r3_tree_insert_pathl_ex(node *tree, const char *path, int path_len, route
|
||||||
{
|
{
|
||||||
node * n = tree;
|
node * n = tree;
|
||||||
|
|
||||||
|
|
||||||
// common edge
|
// common edge
|
||||||
edge * e = NULL;
|
edge * e = NULL;
|
||||||
|
|
||||||
|
// If there is no path to insert at the node, we just increase the mount
|
||||||
|
// point on the node and append the route.
|
||||||
|
if (path_len == 0) {
|
||||||
|
tree->endpoint++;
|
||||||
|
if (route) {
|
||||||
|
route->data = data;
|
||||||
|
r3_node_append_route(tree, route);
|
||||||
|
}
|
||||||
|
return tree;
|
||||||
|
}
|
||||||
|
|
||||||
/* length of common prefix */
|
/* length of common prefix */
|
||||||
int prefix_len = 0;
|
int prefix_len = 0;
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
#define SAFE_FREE(ptr) if(ptr) free(ptr);
|
#define SAFE_FREE(ptr) if(ptr) free(ptr);
|
||||||
|
|
||||||
|
#define STR(str) str, sizeof(str)-1
|
||||||
|
|
||||||
START_TEST (test_find_common_prefix)
|
START_TEST (test_find_common_prefix)
|
||||||
{
|
{
|
||||||
node * n = r3_tree_create(10);
|
node * n = r3_tree_create(10);
|
||||||
|
@ -697,6 +699,25 @@ START_TEST(test_pcre_pattern_more)
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
|
||||||
|
START_TEST(test_insert_pathl_before_root)
|
||||||
|
{
|
||||||
|
char *errstr = NULL;
|
||||||
|
int var1 = 22;
|
||||||
|
int var2 = 33;
|
||||||
|
int var3 = 44;
|
||||||
|
node * n = r3_tree_create(3);
|
||||||
|
r3_tree_insert_pathl_ex(n, STR("/blog/post"), NULL, &var1, NULL);
|
||||||
|
r3_tree_insert_pathl_ex(n, STR("/blog"), NULL, &var2, NULL);
|
||||||
|
r3_tree_insert_pathl_ex(n, STR("/"), NULL, &var3, NULL);
|
||||||
|
|
||||||
|
errstr = NULL;
|
||||||
|
r3_tree_compile(n, &errstr);
|
||||||
|
|
||||||
|
r3_tree_dump(n, 0);
|
||||||
|
|
||||||
|
r3_tree_free(n);
|
||||||
|
}
|
||||||
|
END_TEST
|
||||||
|
|
||||||
|
|
||||||
START_TEST(test_insert_route)
|
START_TEST(test_insert_route)
|
||||||
|
@ -757,6 +778,7 @@ Suite* r3_suite (void) {
|
||||||
tcase_add_test(tcase, test_compile_fail);
|
tcase_add_test(tcase, test_compile_fail);
|
||||||
tcase_add_test(tcase, test_route_cmp);
|
tcase_add_test(tcase, test_route_cmp);
|
||||||
tcase_add_test(tcase, test_insert_route);
|
tcase_add_test(tcase, test_insert_route);
|
||||||
|
tcase_add_test(tcase, test_insert_pathl_before_root);
|
||||||
suite_add_tcase(suite, tcase);
|
suite_add_tcase(suite, tcase);
|
||||||
|
|
||||||
tcase = tcase_create("pcre_pattern_testcase");
|
tcase = tcase_create("pcre_pattern_testcase");
|
||||||
|
|
Loading…
Reference in a new issue