| 1315 | } |
| 1316 | |
| 1317 | void test_4_arg_streambuf_read_at() |
| 1318 | { |
| 1319 | boost::asio::io_context ioc; |
| 1320 | test_random_access_device s(ioc); |
| 1321 | boost::asio::streambuf sb(sizeof(read_data)); |
| 1322 | |
| 1323 | s.reset(read_data, sizeof(read_data)); |
| 1324 | sb.consume(sb.size()); |
| 1325 | size_t bytes_transferred = boost::asio::read_at(s, 0, sb, |
| 1326 | boost::asio::transfer_all()); |
| 1327 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1328 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1329 | BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data))); |
| 1330 | |
| 1331 | s.reset(read_data, sizeof(read_data)); |
| 1332 | sb.consume(sb.size()); |
| 1333 | bytes_transferred = boost::asio::read_at(s, 1234, sb, |
| 1334 | boost::asio::transfer_all()); |
| 1335 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1336 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1337 | BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data))); |
| 1338 | |
| 1339 | s.reset(read_data, sizeof(read_data)); |
| 1340 | s.next_read_length(1); |
| 1341 | sb.consume(sb.size()); |
| 1342 | bytes_transferred = boost::asio::read_at(s, 0, sb, |
| 1343 | boost::asio::transfer_all()); |
| 1344 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1345 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1346 | BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data))); |
| 1347 | |
| 1348 | s.reset(read_data, sizeof(read_data)); |
| 1349 | s.next_read_length(1); |
| 1350 | sb.consume(sb.size()); |
| 1351 | bytes_transferred = boost::asio::read_at(s, 1234, sb, |
| 1352 | boost::asio::transfer_all()); |
| 1353 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1354 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1355 | BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data))); |
| 1356 | |
| 1357 | s.reset(read_data, sizeof(read_data)); |
| 1358 | s.next_read_length(10); |
| 1359 | sb.consume(sb.size()); |
| 1360 | bytes_transferred = boost::asio::read_at(s, 0, sb, |
| 1361 | boost::asio::transfer_all()); |
| 1362 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1363 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1364 | BOOST_ASIO_CHECK(s.check_buffers(0, sb.data(), sizeof(read_data))); |
| 1365 | |
| 1366 | s.reset(read_data, sizeof(read_data)); |
| 1367 | s.next_read_length(10); |
| 1368 | sb.consume(sb.size()); |
| 1369 | bytes_transferred = boost::asio::read_at(s, 1234, sb, |
| 1370 | boost::asio::transfer_all()); |
| 1371 | BOOST_ASIO_CHECK(bytes_transferred == sizeof(read_data)); |
| 1372 | BOOST_ASIO_CHECK(sb.size() == sizeof(read_data)); |
| 1373 | BOOST_ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data))); |
| 1374 |
nothing calls this directly
no test coverage detected