diff options
Diffstat (limited to 'src/template_test.cc')
-rw-r--r-- | src/template_test.cc | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/template_test.cc b/src/template_test.cc index db212d1..99b193b 100644 --- a/src/template_test.cc +++ b/src/template_test.cc @@ -32,12 +32,15 @@ #include "template.h" +using namespace std::literals; + namespace nghttp2 { namespace { const MunitTest tests[]{ munit_void_test(test_template_immutable_string), munit_void_test(test_template_string_ref), + munit_void_test(test_template_as_uint8_span), munit_test_end(), }; } // namespace @@ -147,7 +150,7 @@ void test_template_immutable_string(void) { void test_template_string_ref(void) { StringRef empty; - assert_stdstring_equal("", empty.str()); + assert_stdsv_equal(""sv, empty); assert_size(0, ==, empty.size()); // from std::string @@ -162,9 +165,9 @@ void test_template_string_ref(void) { assert_size(5, ==, ref.size()); // from string literal - auto from_lit = StringRef::from_lit("alpha"); + auto from_lit = "alpha"_sr; - assert_stdstring_equal("alpha", from_lit.str()); + assert_stdsv_equal("alpha"sv, from_lit); assert_size(5, ==, from_lit.size()); // from ImmutableString @@ -172,19 +175,19 @@ void test_template_string_ref(void) { StringRef imref(im); - assert_stdstring_equal("bravo", imref.str()); + assert_stdsv_equal("bravo"sv, imref); assert_size(5, ==, imref.size()); // from C-string StringRef cstrref("charlie"); - assert_stdstring_equal("charlie", cstrref.str()); + assert_stdsv_equal("charlie"sv, cstrref); assert_size(7, ==, cstrref.size()); // from C-string and its length StringRef cstrnref("delta", 5); - assert_stdstring_equal("delta", cstrnref.str()); + assert_stdsv_equal("delta"sv, cstrnref); assert_size(5, ==, cstrnref.size()); // operator[] @@ -213,4 +216,24 @@ void test_template_string_ref(void) { } } +void test_template_as_uint8_span(void) { + uint32_t a[2]; + + memcpy(&a, "\xc0\xc1\xc2\xc3\xf0\xf1\xf2\xf3", sizeof(a)); + + // dynamic extent + auto s = as_uint8_span(std::span{a, 2}); + + assert_size(sizeof(a), ==, s.size()); + assert_size(std::dynamic_extent, ==, s.extent); + assert_memory_equal(s.size(), &a, s.data()); + + // non-dynamic extent + auto t = as_uint8_span(std::span<uint32_t, 2>{a, 2}); + + assert_size(sizeof(a), ==, t.size()); + assert_size(sizeof(a), ==, t.extent); + assert_memory_equal(t.size(), &a, t.data()); +} + } // namespace nghttp2 |