test and fix Buffer::Iterator::WriteHtolsbU64, Buffer::Iterator::ReadU64 , Buffer::Iterator::ReadLsbtohU64
1.1 --- a/src/common/buffer.cc Tue May 05 16:08:36 2009 +0200
1.2 +++ b/src/common/buffer.cc Thu May 07 09:13:06 2009 +0200
1.3 @@ -827,7 +827,7 @@
1.4 WriteU8 ((data >> 32) & 0xff);
1.5 WriteU8 ((data >> 40) & 0xff);
1.6 WriteU8 ((data >> 48) & 0xff);
1.7 - WriteU8 ((data >> 54) & 0xff);
1.8 + WriteU8 ((data >> 56) & 0xff);
1.9 }
1.10
1.11 void
1.12 @@ -903,7 +903,7 @@
1.13 uint8_t byte5 = ReadU8 ();
1.14 uint8_t byte6 = ReadU8 ();
1.15 uint8_t byte7 = ReadU8 ();
1.16 - uint32_t data = byte7;
1.17 + uint64_t data = byte7;
1.18 data <<= 8;
1.19 data |= byte6;
1.20 data <<= 8;
1.21 @@ -1001,7 +1001,7 @@
1.22 uint8_t byte5 = ReadU8 ();
1.23 uint8_t byte6 = ReadU8 ();
1.24 uint8_t byte7 = ReadU8 ();
1.25 - uint32_t data = byte7;
1.26 + uint64_t data = byte7;
1.27 data <<= 8;
1.28 data |= byte6;
1.29 data <<= 8;
1.30 @@ -1275,6 +1275,34 @@
1.31 ENSURE_WRITTEN_BYTES (o, 6, 0xfe, 0xff, 0x69, 0xde, 0xad, 0xff);
1.32 ENSURE_WRITTEN_BYTES (buffer, 7, 0xfd, 0xfd, 0xff, 0x69, 0xde, 0xad, 0xff);
1.33
1.34 + // test 64-bit read/write
1.35 + Buffer buff64;
1.36 + buff64.AddAtStart(8);
1.37 + i = buff64.Begin();
1.38 + i.WriteU64 (0x0123456789ABCDEFllu);
1.39 + ENSURE_WRITTEN_BYTES (buff64, 8, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01);
1.40 + i = buff64.Begin();
1.41 + if (i.ReadLsbtohU64() != 0x0123456789abcdefllu)
1.42 + {
1.43 + result = false;
1.44 + }
1.45 + i = buff64.Begin();
1.46 + i.WriteHtolsbU64 (0x0123456789ABCDEFllu);
1.47 + ENSURE_WRITTEN_BYTES (buff64, 8, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01);
1.48 + i = buff64.Begin();
1.49 + if (i.ReadLsbtohU64() != 0x0123456789abcdefllu)
1.50 + {
1.51 + result = false;
1.52 + }
1.53 + i = buff64.Begin();
1.54 + i.WriteHtonU64 (0x0123456789ABCDEFllu);
1.55 + ENSURE_WRITTEN_BYTES (buff64, 8, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef);
1.56 + i = buff64.Begin();
1.57 + if (i.ReadNtohU64() != 0x0123456789abcdefllu)
1.58 + {
1.59 + result = false;
1.60 + }
1.61 +
1.62 // test self-assignment
1.63 {
1.64 Buffer a = o;