• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

netbuffer.test.h

Go to the documentation of this file.
00001 /* -*- C++ -*- (c) 2007 Petr Rockai <me@mornfall.net>
00002                (c) 2007 Enrico Zini <enrico@enricozini.org> */
00003 
00004 #include <wibble/sys/netbuffer.h>
00005 
00006 #include <wibble/test.h>
00007 #include <cstring>
00008 
00009 using namespace std;
00010 using namespace wibble::sys;
00011 
00012 struct TestNetBuffer {
00013 
00014     // Ensure that a plain NetBuffer starts from the beginning of the string
00015     Test startAtBeginning() {
00016         NetBuffer buf("antani", 6);
00017 
00018         assert_eq(buf.size(), 6u);
00019         assert(memcmp(buf.data(), "antani", 6) == 0);
00020 
00021         assert_eq(*buf.cast<char>(), 'a');
00022         assert(buf.fits<short int>());
00023         assert(!buf.fits<long long int>());
00024     }
00025 
00026     // Try skipping some bytes
00027     Test skipBytes() {
00028         NetBuffer buf("antani", 6);
00029 
00030         NetBuffer buf1(buf);
00031         
00032         assert_eq(buf1.size(), 6u);
00033         assert(memcmp(buf1.data(), "antani", 6) == 0);
00034 
00035         buf1 += 2;
00036         assert_eq(buf1.size(), 4u);
00037         assert(memcmp(buf1.data(), "tani", 4) == 0);
00038         assert_eq(*buf1.cast<char>(), 't');
00039 
00040         buf1 = buf + 2;
00041         assert_eq(buf1.size(), 4u);
00042         assert(memcmp(buf1.data(), "tani", 4) == 0);
00043         assert_eq(*buf1.cast<char>(), 't');
00044         
00045         buf1 = buf;
00046         buf1.skip(2);
00047         assert_eq(buf1.size(), 4u);
00048         assert(memcmp(buf1.data(), "tani", 4) == 0);
00049         assert_eq(*buf1.cast<char>(), 't');
00050         
00051         buf1 = buf.after(2);
00052         assert_eq(buf1.size(), 4u);
00053         assert(memcmp(buf1.data(), "tani", 4) == 0);
00054         assert_eq(*buf1.cast<char>(), 't');
00055         
00056         buf1 = buf;
00057         buf1.skip<short int>();
00058         assert_eq(buf1.size(), 4u);
00059         assert(memcmp(buf1.data(), "tani", 4) == 0);
00060         assert_eq(*buf1.cast<char>(), 't');
00061         
00062         buf1 = buf.after<short int>();
00063         assert_eq(buf1.size(), 4u);
00064         assert(memcmp(buf1.data(), "tani", 4) == 0);
00065         assert_eq(*buf1.cast<char>(), 't');
00066     }
00067     
00068 };
00069 
00070 // vim:set ts=4 sw=4:

Generated on Tue May 10 2011 16:51:50 for wibble by  doxygen 1.7.1