Go to the documentation of this file.00001
00002
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
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
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