BOOST_FIXTURE_TEST_CASE( only_one_transmitbuffer_entry_allocatable, running_mode ) { max_tx_size( 100 ); auto write1 = allocate_transmit_buffer(); write1.buffer[ 0 ] = 0; write1.buffer[ 1 ] = 98; commit_transmit_buffer( write1 ); auto write2 = allocate_transmit_buffer(); BOOST_CHECK_EQUAL( write2.size, 0u ); }
BOOST_FIXTURE_TEST_CASE( getting_an_empty_pdu_must_not_result_in_changing_allocated_transmit_buffer, running_mode ) { auto trans = allocate_transmit_buffer(); std::fill( trans.buffer, trans.buffer + trans.size, 0x22 ); // this call should not change the allocated buffer next_transmit(); BOOST_CHECK( std::find_if( trans.buffer, trans.buffer + trans.size, []( std::uint8_t b ) { return b != 0x22; } ) == trans.buffer + trans.size ); }
void transmit_pdu( Iter begin, Iter end ) { const std::size_t size = std::distance( begin, end ); auto buffer = allocate_transmit_buffer( size + 2 ); assert( buffer.size == size +2 ); buffer.buffer[ 0 ] = 1; buffer.buffer[ 1 ] = size; std::copy( begin, end, &buffer.buffer[ 2 ] ); commit_transmit_buffer( buffer ); }
BOOST_FIXTURE_TEST_CASE( an_allocated_transmit_buffer_must_be_max_tx_in_size, running_mode ) { const auto pdu = allocate_transmit_buffer(); BOOST_CHECK_EQUAL( pdu.size, max_tx_size() ); }
read_buffer ll_data_pdu_buffer< TransmitSize, ReceiveSize, Radio >::allocate_transmit_buffer() { return allocate_transmit_buffer( max_tx_size_ ); }