@@ -236,6 +236,52 @@ TEST_CASE("const_buffer creation string_view", "[buffer]")
236236}
237237#endif
238238
239+ TEST_CASE (" const_buffer creation with str_buffer" , " [buffer]" )
240+ {
241+ const wchar_t wd[10 ] = {};
242+ zmq::const_buffer b = zmq::str_buffer (wd);
243+ CHECK (b.size () == 9 * sizeof (wchar_t ));
244+ CHECK (b.data () == static_cast <const wchar_t *>(wd));
245+
246+ zmq::const_buffer b2_null = zmq::buffer (" hello" );
247+ constexpr zmq::const_buffer b2 = zmq::str_buffer (" hello" );
248+ CHECK (b2_null.size () == 6 );
249+ CHECK (b2.size () == 5 );
250+ CHECK (std::string (static_cast <const char *>(b2.data ()), b2.size ()) == " hello" );
251+ }
252+
253+ TEST_CASE (" const_buffer creation with zbuf string literal char" , " [buffer]" )
254+ {
255+ using namespace zmq ::literals;
256+ constexpr zmq::const_buffer b = " hello" _zbuf;
257+ CHECK (b.size () == 5 );
258+ CHECK (std::memcmp (b.data (), " hello" , b.size ()) == 0 );
259+ }
260+
261+ TEST_CASE (" const_buffer creation with zbuf string literal wchar_t" , " [buffer]" )
262+ {
263+ using namespace zmq ::literals;
264+ constexpr zmq::const_buffer b = L" hello" _zbuf;
265+ CHECK (b.size () == 5 * sizeof (wchar_t ));
266+ CHECK (std::memcmp (b.data (), L" hello" , b.size ()) == 0 );
267+ }
268+
269+ TEST_CASE (" const_buffer creation with zbuf string literal char16_t" , " [buffer]" )
270+ {
271+ using namespace zmq ::literals;
272+ constexpr zmq::const_buffer b = u" hello" _zbuf;
273+ CHECK (b.size () == 5 * sizeof (char16_t ));
274+ CHECK (std::memcmp (b.data (), u" hello" , b.size ()) == 0 );
275+ }
276+
277+ TEST_CASE (" const_buffer creation with zbuf string literal char32_t" , " [buffer]" )
278+ {
279+ using namespace zmq ::literals;
280+ constexpr zmq::const_buffer b = U" hello" _zbuf;
281+ CHECK (b.size () == 5 * sizeof (char32_t ));
282+ CHECK (std::memcmp (b.data (), U" hello" , b.size ()) == 0 );
283+ }
284+
239285TEST_CASE (" buffer of structs" , " [buffer]" )
240286{
241287 struct some_pod
0 commit comments