22 #include "ns3/olsr-header.h"
23 #include "ns3/packet.h"
30 virtual void DoRun (
void);
33 OlsrEmfTestCase::OlsrEmfTestCase ()
34 :
TestCase (
"Check Emf olsr time conversion")
40 for (
int time = 1; time <= 30; time++)
42 uint8_t emf = olsr::SecondsToEmf (time);
43 double seconds = olsr::EmfToSeconds (emf);
44 NS_TEST_ASSERT_MSG_EQ ((seconds < 0 || std::fabs (seconds - time) > 0.1),
false,
53 virtual void DoRun (
void);
56 OlsrMidTestCase::OlsrMidTestCase ()
57 :
TestCase (
"Check Mid olsr messages")
74 std::vector<Ipv4Address> &addresses = mid1.interfaceAddresses;
80 msg1.SetTimeToLive (255);
81 msg1.SetOriginatorAddress (
Ipv4Address (
"11.22.33.44"));
83 msg1.SetMessageSequenceNumber (7);
87 std::vector<Ipv4Address> &addresses = mid2.interfaceAddresses;
93 msg2.SetTimeToLive (254);
94 msg2.SetOriginatorAddress (
Ipv4Address (
"12.22.33.44"));
96 msg2.SetMessageType (olsr::MessageHeader::MID_MESSAGE);
97 msg2.SetMessageSequenceNumber (7);
101 hdr.SetPacketSequenceNumber (123);
113 NS_TEST_ASSERT_MSG_EQ (hdr.GetPacketSequenceNumber (), 123,
"XXX");
120 NS_TEST_ASSERT_MSG_EQ (msg1.GetTimeToLive (), 255,
"XXX");
121 NS_TEST_ASSERT_MSG_EQ (msg1.GetOriginatorAddress (),
Ipv4Address (
"11.22.33.44"),
"XXX");
122 NS_TEST_ASSERT_MSG_EQ (msg1.GetVTime (),
Seconds (9),
"XXX");
123 NS_TEST_ASSERT_MSG_EQ (msg1.GetMessageType (), olsr::MessageHeader::MID_MESSAGE,
"XXX");
124 NS_TEST_ASSERT_MSG_EQ (msg1.GetMessageSequenceNumber (), 7,
"XXX");
127 NS_TEST_ASSERT_MSG_EQ (mid1.interfaceAddresses.size (), 2,
"XXX");
128 NS_TEST_ASSERT_MSG_EQ (*mid1.interfaceAddresses.begin (),
Ipv4Address (
"1.2.3.4"),
"XXX");
131 NS_TEST_ASSERT_MSG_EQ ((sizeLeft > 0),
true,
"XXX");
139 NS_TEST_ASSERT_MSG_EQ (msg2.GetTimeToLive (), 254,
"XXX");
140 NS_TEST_ASSERT_MSG_EQ (msg2.GetOriginatorAddress (),
Ipv4Address (
"12.22.33.44"),
"XXX");
141 NS_TEST_ASSERT_MSG_EQ (msg2.GetVTime (),
Seconds (10),
"XXX");
142 NS_TEST_ASSERT_MSG_EQ (msg2.GetMessageType (), olsr::MessageHeader::MID_MESSAGE,
"XXX");
143 NS_TEST_ASSERT_MSG_EQ (msg2.GetMessageSequenceNumber (), 7,
"XXX");
146 NS_TEST_ASSERT_MSG_EQ (mid2.interfaceAddresses.size (), 2,
"XXX");
147 NS_TEST_ASSERT_MSG_EQ (*mid2.interfaceAddresses.begin (),
Ipv4Address (
"2.2.3.4"),
"XXX");
150 NS_TEST_ASSERT_MSG_EQ (sizeLeft, 0,
"XXX");
159 virtual void DoRun (
void);
162 OlsrHelloTestCase::OlsrHelloTestCase ()
163 :
TestCase (
"Check Hello olsr messages")
173 helloIn.SetHTime (
Seconds (7));
174 helloIn.willingness = 66;
179 lm1.neighborInterfaceAddresses.push_back (
Ipv4Address (
"1.2.3.4"));
180 lm1.neighborInterfaceAddresses.push_back (
Ipv4Address (
"1.2.3.5"));
181 helloIn.linkMessages.push_back (lm1);
185 lm2.neighborInterfaceAddresses.push_back (
Ipv4Address (
"2.2.3.4"));
186 lm2.neighborInterfaceAddresses.push_back (
Ipv4Address (
"2.2.3.5"));
187 helloIn.linkMessages.push_back (lm2);
196 NS_TEST_ASSERT_MSG_EQ (helloOut.GetHTime (),
Seconds (7),
"XXX");
197 NS_TEST_ASSERT_MSG_EQ (helloOut.willingness, 66,
"XXX");
198 NS_TEST_ASSERT_MSG_EQ (helloOut.linkMessages.size (), 2,
"XXX");
200 NS_TEST_ASSERT_MSG_EQ (helloOut.linkMessages[0].linkCode, 2,
"XXX");
201 NS_TEST_ASSERT_MSG_EQ (helloOut.linkMessages[0].neighborInterfaceAddresses[0],
203 NS_TEST_ASSERT_MSG_EQ (helloOut.linkMessages[0].neighborInterfaceAddresses[1],
206 NS_TEST_ASSERT_MSG_EQ (helloOut.linkMessages[1].linkCode, 3,
"XXX");
207 NS_TEST_ASSERT_MSG_EQ (helloOut.linkMessages[1].neighborInterfaceAddresses[0],
209 NS_TEST_ASSERT_MSG_EQ (helloOut.linkMessages[1].neighborInterfaceAddresses[1],
212 NS_TEST_ASSERT_MSG_EQ (packet.
GetSize (), 0,
"All bytes in packet were not read");
219 virtual void DoRun (
void);
222 OlsrTcTestCase::OlsrTcTestCase ()
223 :
TestCase (
"Check Tc olsr messages")
234 tcIn.neighborAddresses.push_back (
Ipv4Address (
"1.2.3.4"));
235 tcIn.neighborAddresses.push_back (
Ipv4Address (
"1.2.3.5"));
242 NS_TEST_ASSERT_MSG_EQ (tcOut.ansn, 0x1234,
"XXX");
243 NS_TEST_ASSERT_MSG_EQ (tcOut.neighborAddresses.size (), 2,
"XXX");
245 NS_TEST_ASSERT_MSG_EQ (tcOut.neighborAddresses[0],
247 NS_TEST_ASSERT_MSG_EQ (tcOut.neighborAddresses[1],
250 NS_TEST_ASSERT_MSG_EQ (packet.
GetSize (), 0,
"XXX");
257 virtual void DoRun (
void);
260 OlsrHnaTestCase::OlsrHnaTestCase ()
261 :
TestCase (
"Check Hna olsr messages")
282 NS_TEST_ASSERT_MSG_EQ (hnaOut.associations.size (), 2,
"XXX");
284 NS_TEST_ASSERT_MSG_EQ (hnaOut.associations[0].address,
286 NS_TEST_ASSERT_MSG_EQ (hnaOut.associations[0].mask,
289 NS_TEST_ASSERT_MSG_EQ (hnaOut.associations[1].address,
291 NS_TEST_ASSERT_MSG_EQ (hnaOut.associations[1].mask,
294 NS_TEST_ASSERT_MSG_EQ (packet.
GetSize (), 0,
"All bytes in packet were not read");
305 OlsrTestSuite::OlsrTestSuite()
306 :
TestSuite (
"routing-olsr-header", UNIT)
uint32_t RemoveHeader(Header &header)
virtual void DoRun(void)
Implementation to actually run this test case.
a class to represent an Ipv4 address mask
uint32_t GetSize(void) const
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual test case to this test suite.
Ipv4 addresses are stored in host order in this class.
Time Seconds(double seconds)
create ns3::Time instances in units of seconds.
virtual void DoRun(void)
Implementation to actually run this test case.
void AddHeader(const Header &header)
virtual void DoRun(void)
Implementation to actually run this test case.