//
// sio_8211Buffer_t.cpp
//
#include <cassert>
#include <memory.h>
#include <iostream>
using namespace std;
#include <sdts++/io/sio_Buffer.h>
void
copy_test( sio_Buffer buffer, vector<char> const& data )
{
// should be identical to the original string
assert ( equal( data.begin(), data.end(), buffer.data().begin() ) );
}
int
main(int argc, char** argv)
{
// create a test data string and then
// convert it over to the container
// that sio_Buffer expects
char text[] = "0123456789";
vector<char> data( strlen(text) );
copy( &text[0], &text[strlen(text)], data.begin() );
sio_Buffer buffer;
assert( buffer.addData( &data[0], data.size() ) );
// the data in the buffer should be identical to the string we used
// to add data to it in the first place
assert ( equal( data.begin(), data.end(), buffer.data().begin() ) );
// now add more data
assert( buffer.addData( text, strlen(text) ) );
// it should be twice as big
assert( data.size() * 2 == buffer.length() );
// and the second half should be identical to the original string
assert ( equal( buffer.data().begin() + strlen(text),
buffer.data().end(), data.begin() ) );
// now blow the buffer away
assert ( buffer.reset() );
// the length should be zero
assert ( 0 == buffer.length() );
// now add data again
assert( buffer.addData( &data[0], data.size() ) );
// again, it should be the same as the original text
assert( data.size() == buffer.length() );
// and it should be identical to the original string
assert ( equal( data.begin(), data.end(), buffer.data().begin() ) );
copy_test( buffer, data );
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1