24 #include "ns3/bit-serializer.h"    25 #include "ns3/bit-deserializer.h"    38   virtual void DoRun (
void);
    50   testBitSerializer1.
PushBits (0x55, 7);
    51   testBitSerializer1.
PushBits (0x7, 3);
    52   testBitSerializer1.
PushBits (0x0, 2);
    54   std::vector<uint8_t> result = testBitSerializer1.
GetBytes ();
    56                          "Incorrect serialization " << std::hex << +result[0] << +result[1] << 
" instead of " << 0xab << 
" " << 0xc0 << std::dec);
    60   testBitSerializer2.
PushBits (0x55, 7);
    61   testBitSerializer2.
PushBits (0x7, 3);
    62   testBitSerializer2.
PushBits (0x0, 2);
    66   result = testBitSerializer2.
GetBytes ();
    68                          "Incorrect serialization " << std::hex << +result[0] << +result[1] << 
" instead of " << 0x0a << 
" " << 0xbc << std::dec);
    80   virtual void DoRun (
void);
   100   testBitDeserializer1.
PushBytes (test1, 2);
   101   nibble1 = testBitDeserializer1.
GetBits (7);
   102   nibble2 = testBitDeserializer1.
GetBits (3);
   103   nibble3 = testBitDeserializer1.
GetBits (2);
   104   result = (nibble1 == 0x55) && (nibble2 == 0x7) && (nibble3 == 0x0);
   107                          "Incorrect deserialization " << std::hex << nibble1 << 
" " << nibble2 << 
" " << nibble3 <<
   108                          " << instead of " << 
" " << 0x55 << 
" " << 0x7 << 
" " << 0x0 << std::dec);
   111   std::vector<uint8_t> test2;
   112   test2.push_back (0xab);
   113   test2.push_back (0xc0);
   116   nibble1 = testBitDeserializer2.
GetBits (7);
   117   nibble2 = testBitDeserializer2.
GetBits (3);
   118   nibble3 = testBitDeserializer2.
GetBits (2);
   120   result = (nibble1 == 0x55) && (nibble2 == 0x7) && (nibble3 == 0x0);
   123                          "Incorrect deserialization " << std::hex << nibble1 << 
" " << nibble2 << 
" " << nibble3 <<
   124                          " << instead of " << 
" " << 0x55 << 
" " << 0x7 << 
" " << 0x0 << std::dec);
 void InsertPaddingAtEnd(bool padAtEnd)
Toggles the padding insertion policy. 
void PushBits(uint64_t value, uint8_t significantBits)
Pushes a number of bits in the blob. 
Bit deserialization test. 
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not. 
uint64_t GetBits(uint8_t size)
Pops a given number of bits from the blob front. 
virtual void DoRun(void)
Implementation to actually run this TestCase. 
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite. 
Packet Metadata TestSuite. 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
static BitSerializerTestSuite g_bitSerializerTest
Static variable for test initialization. 
std::vector< uint8_t > GetBytes()
Get the bytes representation of the blob. 
virtual void DoRun(void)
Implementation to actually run this TestCase. 
void PushBytes(std::vector< uint8_t > bytes)
Pushes some bytes into the blob to be deserialized.