summaryrefslogtreecommitdiffstats
path: root/src/shrpx_router_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/shrpx_router_test.cc')
-rw-r--r--src/shrpx_router_test.cc111
1 files changed, 42 insertions, 69 deletions
diff --git a/src/shrpx_router_test.cc b/src/shrpx_router_test.cc
index a9625a0..0fc4a3a 100644
--- a/src/shrpx_router_test.cc
+++ b/src/shrpx_router_test.cc
@@ -51,16 +51,16 @@ struct Pattern {
void test_shrpx_router_match(void) {
auto patterns = std::vector<Pattern>{
- {StringRef::from_lit("nghttp2.org/"), 0},
- {StringRef::from_lit("nghttp2.org/alpha"), 1},
- {StringRef::from_lit("nghttp2.org/alpha/"), 2},
- {StringRef::from_lit("nghttp2.org/alpha/bravo/"), 3},
- {StringRef::from_lit("www.nghttp2.org/alpha/"), 4},
- {StringRef::from_lit("/alpha"), 5},
- {StringRef::from_lit("example.com/alpha/"), 6},
- {StringRef::from_lit("nghttp2.org/alpha/bravo2/"), 7},
- {StringRef::from_lit("www2.nghttp2.org/alpha/"), 8},
- {StringRef::from_lit("www2.nghttp2.org/alpha2/"), 9},
+ {"nghttp2.org/"_sr, 0},
+ {"nghttp2.org/alpha"_sr, 1},
+ {"nghttp2.org/alpha/"_sr, 2},
+ {"nghttp2.org/alpha/bravo/"_sr, 3},
+ {"www.nghttp2.org/alpha/"_sr, 4},
+ {"/alpha"_sr, 5},
+ {"example.com/alpha/"_sr, 6},
+ {"nghttp2.org/alpha/bravo2/"_sr, 7},
+ {"www2.nghttp2.org/alpha/"_sr, 8},
+ {"www2.nghttp2.org/alpha2/"_sr, 9},
};
Router router;
@@ -71,56 +71,49 @@ void test_shrpx_router_match(void) {
ssize_t idx;
- idx = router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/"));
+ idx = router.match("nghttp2.org"_sr, "/"_sr);
assert_ssize(0, ==, idx);
- idx = router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/alpha"));
+ idx = router.match("nghttp2.org"_sr, "/alpha"_sr);
assert_ssize(1, ==, idx);
- idx = router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/alpha/"));
+ idx = router.match("nghttp2.org"_sr, "/alpha/"_sr);
assert_ssize(2, ==, idx);
- idx = router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/alpha/charlie"));
+ idx = router.match("nghttp2.org"_sr, "/alpha/charlie"_sr);
assert_ssize(2, ==, idx);
- idx = router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/alpha/bravo/"));
+ idx = router.match("nghttp2.org"_sr, "/alpha/bravo/"_sr);
assert_ssize(3, ==, idx);
// matches pattern when last '/' is missing in path
- idx = router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/alpha/bravo"));
+ idx = router.match("nghttp2.org"_sr, "/alpha/bravo"_sr);
assert_ssize(3, ==, idx);
- idx = router.match(StringRef::from_lit("www2.nghttp2.org"),
- StringRef::from_lit("/alpha"));
+ idx = router.match("www2.nghttp2.org"_sr, "/alpha"_sr);
assert_ssize(8, ==, idx);
- idx = router.match(StringRef{}, StringRef::from_lit("/alpha"));
+ idx = router.match(StringRef{}, "/alpha"_sr);
assert_ssize(5, ==, idx);
}
void test_shrpx_router_match_wildcard(void) {
- constexpr auto patterns = std::array<Pattern, 6>{{
- {StringRef::from_lit("nghttp2.org/"), 0},
- {StringRef::from_lit("nghttp2.org/"), 1, true},
- {StringRef::from_lit("nghttp2.org/alpha/"), 2},
- {StringRef::from_lit("nghttp2.org/alpha/"), 3, true},
- {StringRef::from_lit("nghttp2.org/bravo"), 4},
- {StringRef::from_lit("nghttp2.org/bravo"), 5, true},
- }};
+ constexpr auto patterns = std::to_array<Pattern>({
+ {"nghttp2.org/"_sr, 0},
+ {"nghttp2.org/"_sr, 1, true},
+ {"nghttp2.org/alpha/"_sr, 2},
+ {"nghttp2.org/alpha/"_sr, 3, true},
+ {"nghttp2.org/bravo"_sr, 4},
+ {"nghttp2.org/bravo"_sr, 5, true},
+ });
Router router;
@@ -128,49 +121,31 @@ void test_shrpx_router_match_wildcard(void) {
router.add_route(p.pattern, p.idx, p.wildcard);
}
- assert_ssize(0, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/")));
+ assert_ssize(0, ==, router.match("nghttp2.org"_sr, "/"_sr));
- assert_ssize(1, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/a")));
+ assert_ssize(1, ==, router.match("nghttp2.org"_sr, "/a"_sr));
- assert_ssize(1, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/charlie")));
+ assert_ssize(1, ==, router.match("nghttp2.org"_sr, "/charlie"_sr));
- assert_ssize(2, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/alpha")));
+ assert_ssize(2, ==, router.match("nghttp2.org"_sr, "/alpha"_sr));
- assert_ssize(2, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/alpha/")));
+ assert_ssize(2, ==, router.match("nghttp2.org"_sr, "/alpha/"_sr));
- assert_ssize(3, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/alpha/b")));
+ assert_ssize(3, ==, router.match("nghttp2.org"_sr, "/alpha/b"_sr));
- assert_ssize(4, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/bravo")));
+ assert_ssize(4, ==, router.match("nghttp2.org"_sr, "/bravo"_sr));
- assert_ssize(5, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/bravocharlie")));
+ assert_ssize(5, ==, router.match("nghttp2.org"_sr, "/bravocharlie"_sr));
- assert_ssize(5, ==,
- router.match(StringRef::from_lit("nghttp2.org"),
- StringRef::from_lit("/bravo/")));
+ assert_ssize(5, ==, router.match("nghttp2.org"_sr, "/bravo/"_sr));
}
void test_shrpx_router_match_prefix(void) {
auto patterns = std::vector<Pattern>{
- {StringRef::from_lit("gro.2ptthgn."), 0},
- {StringRef::from_lit("gro.2ptthgn.www."), 1},
- {StringRef::from_lit("gro.2ptthgn.gmi."), 2},
- {StringRef::from_lit("gro.2ptthgn.gmi.ahpla."), 3},
+ {"gro.2ptthgn."_sr, 0},
+ {"gro.2ptthgn.www."_sr, 1},
+ {"gro.2ptthgn.gmi."_sr, 2},
+ {"gro.2ptthgn.gmi.ahpla."_sr, 3},
};
Router router;
@@ -185,19 +160,17 @@ void test_shrpx_router_match_prefix(void) {
node = nullptr;
- idx = router.match_prefix(&nread, &node,
- StringRef::from_lit("gro.2ptthgn.gmi.ahpla.ovarb"));
+ idx = router.match_prefix(&nread, &node, "gro.2ptthgn.gmi.ahpla.ovarb"_sr);
assert_ssize(0, ==, idx);
assert_size(12, ==, nread);
- idx = router.match_prefix(&nread, &node,
- StringRef::from_lit("gmi.ahpla.ovarb"));
+ idx = router.match_prefix(&nread, &node, "gmi.ahpla.ovarb"_sr);
assert_ssize(2, ==, idx);
assert_size(4, ==, nread);
- idx = router.match_prefix(&nread, &node, StringRef::from_lit("ahpla.ovarb"));
+ idx = router.match_prefix(&nread, &node, "ahpla.ovarb"_sr);
assert_ssize(3, ==, idx);
assert_ssize(6, ==, nread);