From 88eee0c628c6fab689ddadf2dd5e76b566e3cbcf Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sat, 9 Oct 2021 19:50:34 +0300 Subject: [PATCH] Test std::pmr::string in sv_construct_test --- test/sv_construct_test.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/sv_construct_test.cpp b/test/sv_construct_test.cpp index 3e7343d..5107d97 100644 --- a/test/sv_construct_test.cpp +++ b/test/sv_construct_test.cpp @@ -299,6 +299,42 @@ int main() } } +#endif + +#if !defined(BOOST_NO_CXX17_HDR_MEMORY_RESOURCE) + + { + std::pmr::string str = "123"; + + boost::core::string_view sv( str ); + + BOOST_TEST_EQ( sv.data(), str.data() ); + BOOST_TEST_EQ( sv.size(), str.size() ); + + BOOST_TEST_EQ( sv.begin(), sv.data() ); + BOOST_TEST_EQ( sv.end(), sv.data() + sv.size() ); + + BOOST_TEST_EQ( sv.cbegin(), sv.data() ); + BOOST_TEST_EQ( sv.cend(), sv.data() + sv.size() ); + + BOOST_TEST( sv.rbegin() == ::make_reverse_iterator( sv.end() ) ); + BOOST_TEST( sv.rend() == ::make_reverse_iterator( sv.begin() ) ); + + BOOST_TEST( sv.crbegin() == ::make_reverse_iterator( sv.cend() ) ); + BOOST_TEST( sv.crend() == ::make_reverse_iterator( sv.cbegin() ) ); + + BOOST_TEST_EQ( sv.length(), sv.size() ); + BOOST_TEST_EQ( sv.empty(), sv.size() == 0 ); + + BOOST_TEST_EQ( sv.max_size(), boost::core::string_view::npos ); + + if( !sv.empty() ) + { + BOOST_TEST_EQ( &sv.front(), sv.data() ); + BOOST_TEST_EQ( &sv.back(), sv.data() + sv.size() - 1 ); + } + } + #endif return boost::report_errors();