MCPcopy Create free account
hub / github.com/pybind/pybind11 / test_string_view

Function test_string_view

tests/test_builtin_casters.py:148–224  ·  view source on GitHub ↗

Tests support for C++17 string_view arguments and return values

(capture)

Source from the content-addressed store, hash-verified

146
147@pytest.mark.skipif(not hasattr(m, "has_string_view"), reason="no <string_view>")
148def test_string_view(capture):
149 """Tests support for C++17 string_view arguments and return values"""
150 assert m.string_view_chars("Hi") == [72, 105]
151 assert m.string_view_chars("Hi 🎂") == [72, 105, 32, 0xF0, 0x9F, 0x8E, 0x82]
152 assert m.string_view16_chars("Hi 🎂") == [72, 105, 32, 0xD83C, 0xDF82]
153 assert m.string_view32_chars("Hi 🎂") == [72, 105, 32, 127874]
154 if hasattr(m, "has_u8string"):
155 assert m.string_view8_chars("Hi") == [72, 105]
156 assert m.string_view8_chars("Hi 🎂") == [72, 105, 32, 0xF0, 0x9F, 0x8E, 0x82]
157
158 assert m.string_view_return() == "utf8 secret 🎂"
159 assert m.string_view16_return() == "utf16 secret 🎂"
160 assert m.string_view32_return() == "utf32 secret 🎂"
161 if hasattr(m, "has_u8string"):
162 assert m.string_view8_return() == "utf8 secret 🎂"
163
164 with capture:
165 m.string_view_print("Hi")
166 m.string_view_print("utf8 🎂")
167 m.string_view16_print("utf16 🎂")
168 m.string_view32_print("utf32 🎂")
169 assert (
170 capture
171 == """
172 Hi 2
173 utf8 🎂 9
174 utf16 🎂 8
175 utf32 🎂 7
176 """
177 )
178 if hasattr(m, "has_u8string"):
179 with capture:
180 m.string_view8_print("Hi")
181 m.string_view8_print("utf8 🎂")
182 assert (
183 capture
184 == """
185 Hi 2
186 utf8 🎂 9
187 """
188 )
189
190 with capture:
191 m.string_view_print("Hi, ascii")
192 m.string_view_print("Hi, utf8 🎂")
193 m.string_view16_print("Hi, utf16 🎂")
194 m.string_view32_print("Hi, utf32 🎂")
195 assert (
196 capture
197 == """
198 Hi, ascii 9
199 Hi, utf8 🎂 13
200 Hi, utf16 🎂 12
201 Hi, utf32 🎂 11
202 """
203 )
204 if hasattr(m, "has_u8string"):
205 with capture:

Callers

nothing calls this directly

Calls 1

hasattrFunction · 0.85

Tested by

no test coverage detected