Björn Svensson
ff1ef2c148
Correcting issue with multiple edges
...
When `r3_node_find_common_prefix()` searches for the common prefix it
selects the first matched edge, which might not be the best match.
This issue gives memoryleaks which can be viewed in legacy
testcase `check_tree::test_insert_pathl()` by building using:
`CFLAGS="-fno-omit-frame-pointer -fsanitize=leak" cmake ..`
See testcase procedures:
ret = r3_tree_insert_path(n, "/foo/{id}", NULL);
..
ret = r3_tree_insert_path(n, "/foo/{idx}/{idy}", NULL);
..
ret = r3_tree_insert_path(n, "/foo/{idx}/{idh}", NULL); <-- leaks
Also added a testcase that triggers the problem including a leak for
reproduction on baseline.
2021-09-20 16:55:37 +02:00
Michael Steinert
b3dbf75da5
Remove zmalloc dependency
...
Zmalloc comes from Redis. It's purpose is to track total allocations so
that a maximum can be set. For more information see the following links:
https://groups.google.com/forum/#!topic/redis-db/dPRdpowqJsY
https://stackoverflow.com/questions/22729730/when-would-one-use-malloc-over-zmalloc
This allocator is slower, not needed, and conflicts with Zlib (when
linking statically). This patch removes Zmalloc in favor of the system
allocator. Application developers can still choose to override the
allocator in their applications, e.g. Jemalloc, TCMalloc, etc.
Fixes #104
2018-07-10 08:20:46 -05:00
Michael Steinert
081ccb2bde
Fix issues with check_tree test
...
This patch fixes a few issues in the check_tree test:
* Fix various memory leaks in test code
* Fix a double-free in test code
* Fix a memory leak in r3_tree_compile_patterns
One memory leak remains in the library code but it isn't obvious to me
how to fix it at the moment.
2018-07-05 09:58:20 -05:00
Martijn Otto
2f96c59929
Further WIP, got the tests to link against pthread (was broken due to pkg-config not specifying -pthread as -lpthread and cmake thus not recognizing it as a library)
2018-02-24 17:45:15 +01:00
karantin2020
75438ef3d3
Changed r3 memory model, made few optimizing
2016-03-22 07:23:37 +05:00
c9s
c3ef959539
Add route namespace
...
Summary:
type route now becomes R3Route
Related issue #63
2015-11-18 14:16:26 +08:00
c9s
49ffb454f7
Add namespace for node/edge structs
...
node => R3Node
edge => R3Edge
Related issue #63
2015-11-18 12:53:46 +08:00
c9s
b0971e1553
Fix include
2015-11-17 21:35:18 +08:00
c9s
973a2cb85c
Move private functions to private header files
2015-11-17 21:17:35 +08:00
c9s
89e4517772
Fix zero-length path insertion
...
Fixes : #86 , #85
2015-11-17 16:10:26 +08:00
c9s
2f3bcb7116
refactoring testcase group
2015-11-17 15:37:10 +08:00
c9s
5f39b73211
Add test_root_match test case
2015-10-18 07:39:50 +08:00
c9s
98f27dadc9
test matched route data
2014-06-12 18:52:56 +08:00
c9s
5137d4d8e4
simplify functions to macro
2014-06-04 23:13:08 +08:00
c9s
5609fd5f9e
r3 function prefix
...
- Remove ltrim_slash.
- Add "r3_" prefix to r3_str.c functions.
2014-06-03 20:50:19 +08:00
c9s
67366bf688
fix warnings
2014-06-03 18:23:28 +08:00
Pedro
7c7e8b22e4
update assert statement
2014-06-03 02:13:52 +08:00
c9s
af5a89b3ea
Add test_insert_pathl_fail test
2014-06-02 16:20:02 +08:00
c9s
712767c5b6
Add more errstr pointer check
2014-06-02 16:15:44 +08:00
c9s
ea7fa973cd
Add SAFE_FREE for char * errstr
2014-06-02 16:12:27 +08:00
c9s
1f21ea19a8
Add char ** errstr to r3_node_find_common_prefix
2014-06-02 15:52:40 +08:00
c9s
f2c8005707
Test failing test case
2014-06-02 09:51:42 +08:00
c9s
2465ee4ffe
fix all tests
2014-06-02 09:49:13 +08:00
c9s
9441f974de
test compile fail
2014-06-02 09:48:00 +08:00
c9s
fd1e5f7f50
Add r3_node_find_common_prefix test cases
2014-06-02 09:09:41 +08:00
c9s
b4ce60de59
separate check_str_array test cases
2014-06-02 08:13:19 +08:00
c9s
f3bf32b922
refactor path insert function
2014-06-02 08:04:57 +08:00
c9s
f5221fd5c9
another test path
2014-06-02 07:14:16 +08:00
c9s
aace74f7a5
more paths tests
2014-06-02 07:13:47 +08:00
c9s
9271f0bf08
free the variable
2014-06-02 06:50:24 +08:00
c9s
d120389415
more path tests
2014-06-02 06:40:27 +08:00
c9s
17b4201197
more incomplete slug pattern tests
2014-06-02 06:38:50 +08:00
c9s
7d69e79535
gvc fix
2014-06-01 14:53:12 +08:00
c9s
2df5c11d09
use ck_assert
2014-06-01 02:29:12 +08:00
c9s
a946a79223
include assert.h
2014-06-01 02:28:58 +08:00
c9s
4c26995e41
assert errno == NULL
2014-06-01 02:13:38 +08:00
c9s
f670f08639
update error code for compile function
2014-06-01 02:08:16 +08:00
c9s
1a4eb14a05
error code support
...
- return error code if compilation error occurs
- use asprintf to sprint errstr
2014-06-01 02:03:44 +08:00
c9s
9433e2192a
route api improvement
2014-05-31 19:56:46 +08:00
c9s
7aaed3e5d7
merge str_array.h
2014-05-26 21:39:36 +08:00
c9s
b394be57cb
support simple opcode
2014-05-23 16:18:58 +08:00
c9s
333fabd795
insert path for opcode
2014-05-23 16:18:58 +08:00
c9s
7d16413cb3
more benchmark result
2014-05-23 16:18:57 +08:00
c9s
15facc82cc
Merge branch 'feature/asan' of https://github.com/czchen/r3 into czchen-feature/asan
...
Conflicts:
.travis.yml
2014-05-22 22:07:52 +08:00
ChangZhuo Chen (陳昌倬)
fef3361ed2
Set test timeout to 30
2014-05-22 22:06:11 +08:00
c9s
fc1a4b762d
Separate benchmark application
2014-05-22 21:55:41 +08:00
c9s
ce1f3cdc3f
Update legend style
2014-05-22 21:44:31 +08:00
c9s
fa6a7b77e0
Add pcre_benchmark test case
2014-05-22 21:18:17 +08:00
c9s
c9fe373d91
benchmark function improvements
2014-05-22 21:01:25 +08:00
c9s
7e44ee01f4
refactor Benchmark related macros
...
Conflicts:
tests/bench_str.csv
2014-05-22 20:31:18 +08:00