From: Tomek Mrugalski Date: Tue, 18 Oct 2011 17:56:28 +0000 (+0200) Subject: [1313] Tests implemented for readUint32,writeUint32 X-Git-Tag: perftcpdns_before_epoll~78^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a0cf3955fceb4d810997dfefed7abbf57e4ee1cf;p=thirdparty%2Fkea.git [1313] Tests implemented for readUint32,writeUint32 --- diff --git a/src/lib/util/tests/io_utilities_unittest.cc b/src/lib/util/tests/io_utilities_unittest.cc index 4aad560f5c..dbbfe2f570 100644 --- a/src/lib/util/tests/io_utilities_unittest.cc +++ b/src/lib/util/tests/io_utilities_unittest.cc @@ -19,6 +19,7 @@ #include +#include #include #include @@ -71,3 +72,48 @@ TEST(asioutil, writeUint16) { EXPECT_EQ(ref[1], test[1]); } } + +// test data shared amount readUint32 and writeUint32 tests +const static uint32_t test32[] = { + 0, + 1, + 2000, + 0x80000000, + 0xffffffff +}; + +TEST(asioutil, readUint32) { + uint8_t data[8]; + + // make sure that we can read data, regardless of + // the memory alignment. That' why we need to repeat + // it 4 times. + for (int offset=0; offset<4; offset++) { + for (int i=0; i< sizeof(test32); i++) { + uint32_t tmp = htonl(test32[i]); + memcpy(&data[offset], &tmp, sizeof(uint32_t) ); + + EXPECT_EQ( test32[i], readUint32(&data[offset]) ); + } + } +} + + +TEST(asioutil, writeUint32) { + uint8_t data[8]; + + // make sure that we can write data, regardless of + // the memory alignment. That's why we need to repeat + // it 4 times. + for (int offset=0; offset<4; offset++) { + for (int i=0; i< sizeof(test32); i++) { + uint8_t* ptr = writeUint32(test32[i], &data[offset]); + + EXPECT_EQ( &data[offset]+sizeof(uint32_t), ptr ); + + uint32_t tmp = htonl(test32[i]); + + EXPECT_FALSE( memcmp(&tmp, &data[offset], sizeof(uint32_t) ) ); + } + } +}