summaryrefslogtreecommitdiffstats
path: root/src/shrpx_http_test.cc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/shrpx_http_test.cc130
1 files changed, 77 insertions, 53 deletions
diff --git a/src/shrpx_http_test.cc b/src/shrpx_http_test.cc
index 3ace870..f753ec8 100644
--- a/src/shrpx_http_test.cc
+++ b/src/shrpx_http_test.cc
@@ -30,7 +30,7 @@
#include <cstdlib>
-#include <CUnit/CUnit.h>
+#include "munitxx.h"
#include "shrpx_http.h"
#include "shrpx_config.h"
@@ -38,43 +38,65 @@
namespace shrpx {
+namespace {
+const MunitTest tests[]{
+ munit_void_test(test_shrpx_http_create_forwarded),
+ munit_void_test(test_shrpx_http_create_via_header_value),
+ munit_void_test(test_shrpx_http_create_affinity_cookie),
+ munit_void_test(test_shrpx_http_create_altsvc_header_value),
+ munit_void_test(test_shrpx_http_check_http_scheme),
+ munit_test_end(),
+};
+} // namespace
+
+const MunitSuite http_suite{
+ "/http", tests, NULL, 1, MUNIT_SUITE_OPTION_NONE,
+};
+
void test_shrpx_http_create_forwarded(void) {
BlockAllocator balloc(1024, 1024);
- CU_ASSERT("by=\"example.com:3000\";for=\"[::1]\";host=\"www.example.com\";"
- "proto=https" ==
- http::create_forwarded(balloc,
- FORWARDED_BY | FORWARDED_FOR |
- FORWARDED_HOST | FORWARDED_PROTO,
- StringRef::from_lit("example.com:3000"),
- StringRef::from_lit("[::1]"),
- StringRef::from_lit("www.example.com"),
- StringRef::from_lit("https")));
-
- CU_ASSERT("for=192.168.0.1" ==
- http::create_forwarded(
- balloc, FORWARDED_FOR, StringRef::from_lit("alpha"),
- StringRef::from_lit("192.168.0.1"),
- StringRef::from_lit("bravo"), StringRef::from_lit("charlie")));
-
- CU_ASSERT("by=_hidden;for=\"[::1]\"" ==
- http::create_forwarded(
- balloc, FORWARDED_BY | FORWARDED_FOR,
- StringRef::from_lit("_hidden"), StringRef::from_lit("[::1]"),
- StringRef::from_lit(""), StringRef::from_lit("")));
-
- CU_ASSERT("by=\"[::1]\";for=_hidden" ==
- http::create_forwarded(
- balloc, FORWARDED_BY | FORWARDED_FOR,
- StringRef::from_lit("[::1]"), StringRef::from_lit("_hidden"),
- StringRef::from_lit(""), StringRef::from_lit("")));
-
- CU_ASSERT("" ==
- http::create_forwarded(
- balloc,
- FORWARDED_BY | FORWARDED_FOR | FORWARDED_HOST | FORWARDED_PROTO,
- StringRef::from_lit(""), StringRef::from_lit(""),
- StringRef::from_lit(""), StringRef::from_lit("")));
+ assert_stdstring_equal(
+ "by=\"example.com:3000\";for=\"[::1]\";host=\"www.example.com\";"
+ "proto=https",
+ http::create_forwarded(
+ balloc,
+ FORWARDED_BY | FORWARDED_FOR | FORWARDED_HOST | FORWARDED_PROTO,
+ StringRef::from_lit("example.com:3000"), StringRef::from_lit("[::1]"),
+ StringRef::from_lit("www.example.com"), StringRef::from_lit("https"))
+ .str());
+
+ assert_stdstring_equal(
+ "for=192.168.0.1",
+ http::create_forwarded(
+ balloc, FORWARDED_FOR, StringRef::from_lit("alpha"),
+ StringRef::from_lit("192.168.0.1"), StringRef::from_lit("bravo"),
+ StringRef::from_lit("charlie"))
+ .str());
+
+ assert_stdstring_equal(
+ "by=_hidden;for=\"[::1]\"",
+ http::create_forwarded(balloc, FORWARDED_BY | FORWARDED_FOR,
+ StringRef::from_lit("_hidden"),
+ StringRef::from_lit("[::1]"),
+ StringRef::from_lit(""), StringRef::from_lit(""))
+ .str());
+
+ assert_stdstring_equal(
+ "by=\"[::1]\";for=_hidden",
+ http::create_forwarded(balloc, FORWARDED_BY | FORWARDED_FOR,
+ StringRef::from_lit("[::1]"),
+ StringRef::from_lit("_hidden"),
+ StringRef::from_lit(""), StringRef::from_lit(""))
+ .str());
+
+ assert_stdstring_equal(
+ "", http::create_forwarded(
+ balloc,
+ FORWARDED_BY | FORWARDED_FOR | FORWARDED_HOST | FORWARDED_PROTO,
+ StringRef::from_lit(""), StringRef::from_lit(""),
+ StringRef::from_lit(""), StringRef::from_lit(""))
+ .str());
}
void test_shrpx_http_create_via_header_value(void) {
@@ -82,13 +104,13 @@ void test_shrpx_http_create_via_header_value(void) {
auto end = http::create_via_header_value(std::begin(buf), 1, 1);
- CU_ASSERT(("1.1 nghttpx" == StringRef{std::begin(buf), end}));
+ assert_stdstring_equal("1.1 nghttpx", (std::string{std::begin(buf), end}));
std::fill(std::begin(buf), std::end(buf), '\0');
end = http::create_via_header_value(std::begin(buf), 2, 0);
- CU_ASSERT(("2 nghttpx" == StringRef{std::begin(buf), end}));
+ assert_stdstring_equal("2 nghttpx", (std::string{std::begin(buf), end}));
}
void test_shrpx_http_create_affinity_cookie(void) {
@@ -98,24 +120,24 @@ void test_shrpx_http_create_affinity_cookie(void) {
c = http::create_affinity_cookie(balloc, StringRef::from_lit("cookie-val"),
0xf1e2d3c4u, StringRef{}, false);
- CU_ASSERT("cookie-val=f1e2d3c4" == c);
+ assert_stdstring_equal("cookie-val=f1e2d3c4", c.str());
c = http::create_affinity_cookie(balloc, StringRef::from_lit("alpha"),
0x00000000u, StringRef{}, true);
- CU_ASSERT("alpha=00000000; Secure" == c);
+ assert_stdstring_equal("alpha=00000000; Secure", c.str());
c = http::create_affinity_cookie(balloc, StringRef::from_lit("bravo"),
0x01111111u, StringRef::from_lit("bar"),
false);
- CU_ASSERT("bravo=01111111; Path=bar" == c);
+ assert_stdstring_equal("bravo=01111111; Path=bar", c.str());
c = http::create_affinity_cookie(balloc, StringRef::from_lit("charlie"),
0x01111111u, StringRef::from_lit("bar"),
true);
- CU_ASSERT("charlie=01111111; Path=bar; Secure" == c);
+ assert_stdstring_equal("charlie=01111111; Path=bar; Secure", c.str());
}
void test_shrpx_http_create_altsvc_header_value(void) {
@@ -130,8 +152,9 @@ void test_shrpx_http_create_altsvc_header_value(void) {
},
};
- CU_ASSERT(R"(h3="127.0.0.1:443"; ma=3600)" ==
- http::create_altsvc_header_value(balloc, altsvcs));
+ assert_stdstring_equal(
+ R"(h3="127.0.0.1:443"; ma=3600)",
+ http::create_altsvc_header_value(balloc, altsvcs).str());
}
{
@@ -149,20 +172,21 @@ void test_shrpx_http_create_altsvc_header_value(void) {
},
};
- CU_ASSERT(R"(h3=":443"; ma=3600, h3%25="\"foo\":4433")" ==
- http::create_altsvc_header_value(balloc, altsvcs));
+ assert_stdstring_equal(
+ R"(h3=":443"; ma=3600, h3%25="\"foo\":4433")",
+ http::create_altsvc_header_value(balloc, altsvcs).str());
}
}
void test_shrpx_http_check_http_scheme(void) {
- CU_ASSERT(http::check_http_scheme(StringRef::from_lit("https"), true));
- CU_ASSERT(!http::check_http_scheme(StringRef::from_lit("https"), false));
- CU_ASSERT(!http::check_http_scheme(StringRef::from_lit("http"), true));
- CU_ASSERT(http::check_http_scheme(StringRef::from_lit("http"), false));
- CU_ASSERT(!http::check_http_scheme(StringRef::from_lit("foo"), true));
- CU_ASSERT(!http::check_http_scheme(StringRef::from_lit("foo"), false));
- CU_ASSERT(!http::check_http_scheme(StringRef{}, true));
- CU_ASSERT(!http::check_http_scheme(StringRef{}, false));
+ assert_true(http::check_http_scheme(StringRef::from_lit("https"), true));
+ assert_false(http::check_http_scheme(StringRef::from_lit("https"), false));
+ assert_false(http::check_http_scheme(StringRef::from_lit("http"), true));
+ assert_true(http::check_http_scheme(StringRef::from_lit("http"), false));
+ assert_false(http::check_http_scheme(StringRef::from_lit("foo"), true));
+ assert_false(http::check_http_scheme(StringRef::from_lit("foo"), false));
+ assert_false(http::check_http_scheme(StringRef{}, true));
+ assert_false(http::check_http_scheme(StringRef{}, false));
}
} // namespace shrpx