20 #include "ns3/ipv4-address-generator.h"
21 #include "ns3/simulation-singleton.h"
29 virtual void DoRun (
void);
30 virtual void DoTeardown (
void);
33 NetworkNumberAllocatorTestCase::NetworkNumberAllocatorTestCase ()
34 :
TestCase (
"Make sure the network number allocator is working on some of network prefixes.")
40 Ipv4AddressGenerator::Reset ();
48 network = Ipv4AddressGenerator::GetNetwork (
Ipv4Mask (
"255.0.0.0"));
49 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"1.0.0.0"),
"XXX");
50 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.0.0.0"));
51 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"2.0.0.0"),
"XXX");
53 Ipv4AddressGenerator::Init (
Ipv4Address (
"0.1.0.0"),
55 network = Ipv4AddressGenerator::GetNetwork (
Ipv4Mask (
"255.255.0.0"));
56 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"0.1.0.0"),
"XXX");
57 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.255.0.0"));
58 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"0.2.0.0"),
"XXX");
60 Ipv4AddressGenerator::Init (
Ipv4Address (
"0.0.1.0"),
62 network = Ipv4AddressGenerator::GetNetwork (
Ipv4Mask (
"255.255.255.0"));
63 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"0.0.1.0"),
"XXX");
64 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.255.255.0"));
65 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"0.0.2.0"),
"XXX");
67 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.0.0.0"));
68 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"3.0.0.0"),
"XXX");
69 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.255.0.0"));
70 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"0.3.0.0"),
"XXX");
71 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.255.255.0"));
72 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"0.0.3.0"),
"XXX");
80 virtual void DoRun (
void);
84 AddressAllocatorTestCase::AddressAllocatorTestCase ()
85 :
TestCase (
"Sanity check on allocation of addresses")
96 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.0.0.0"));
97 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"1.0.0.3"),
"XXX");
98 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.0.0.0"));
99 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"1.0.0.4"),
"XXX");
101 Ipv4AddressGenerator::Init (
Ipv4Address (
"0.1.0.0"),
103 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.0.0"));
104 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.1.0.3"),
"XXX");
105 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.0.0"));
106 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.1.0.4"),
"XXX");
108 Ipv4AddressGenerator::Init (
Ipv4Address (
"0.0.1.0"),
110 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
111 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.0.1.3"),
"XXX");
112 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
113 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.0.1.4"),
"XXX");
119 Ipv4AddressGenerator::Reset ();
120 Simulator::Destroy ();
128 virtual void DoRun (
void);
132 NetworkAndAddressTestCase::NetworkAndAddressTestCase ()
133 :
TestCase (
"Make sure Network and address allocation play together.")
140 Ipv4AddressGenerator::Reset ();
141 Simulator::Destroy ();
152 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.0.0.0"));
153 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"3.0.0.3"),
"XXX");
154 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.0.0.0"));
155 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"3.0.0.4"),
"XXX");
157 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.0.0.0"));
158 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"4.0.0.0"),
"XXX");
159 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.0.0.0"));
160 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"4.0.0.5"),
"XXX");
162 Ipv4AddressGenerator::Init (
Ipv4Address (
"0.3.0.0"),
164 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.0.0"));
165 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.3.0.3"),
"XXX");
166 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.0.0"));
167 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.3.0.4"),
"XXX");
169 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.255.0.0"));
170 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"0.4.0.0"),
"XXX");
171 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.0.0"));
172 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.4.0.5"),
"XXX");
174 Ipv4AddressGenerator::Init (
Ipv4Address (
"0.0.3.0"),
176 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
177 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.0.3.3"),
"XXX");
178 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
179 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.0.3.4"),
"XXX");
181 network = Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.255.255.0"));
182 NS_TEST_EXPECT_MSG_EQ (network,
Ipv4Address (
"0.0.4.0"),
"XXX");
183 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
184 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"0.0.4.5"),
"XXX");
192 virtual void DoRun (
void);
196 ExampleAddressGeneratorTestCase::ExampleAddressGeneratorTestCase ()
197 :
TestCase (
"A quick kindof-semi-almost-real example")
204 Ipv4AddressGenerator::Reset ();
215 Ipv4AddressGenerator::Init (
Ipv4Address (
"192.168.0.0"),
217 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
218 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"192.168.0.3"),
"XXX");
219 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
220 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"192.168.0.4"),
"XXX");
221 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
222 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"192.168.0.5"),
"XXX");
228 Ipv4AddressGenerator::NextNetwork (
Ipv4Mask (
"255.255.255.0"));
229 Ipv4AddressGenerator::InitAddress (
Ipv4Address (
"0.0.0.3"),
235 address = Ipv4AddressGenerator::NextAddress (
Ipv4Mask (
"255.255.255.0"));
236 NS_TEST_EXPECT_MSG_EQ (address,
Ipv4Address (
"192.168.1.3"),
"XXX");
248 AddressCollisionTestCase::AddressCollisionTestCase ()
249 :
TestCase (
"Make sure that the address collision logic works.")
256 Ipv4AddressGenerator::Reset ();
257 Simulator::Destroy ();
262 Ipv4AddressGenerator::AddAllocated (
"0.0.0.5");
263 Ipv4AddressGenerator::AddAllocated (
"0.0.0.10");
264 Ipv4AddressGenerator::AddAllocated (
"0.0.0.15");
265 Ipv4AddressGenerator::AddAllocated (
"0.0.0.20");
267 Ipv4AddressGenerator::AddAllocated (
"0.0.0.4");
268 Ipv4AddressGenerator::AddAllocated (
"0.0.0.3");
269 Ipv4AddressGenerator::AddAllocated (
"0.0.0.2");
270 Ipv4AddressGenerator::AddAllocated (
"0.0.0.1");
272 Ipv4AddressGenerator::AddAllocated (
"0.0.0.6");
273 Ipv4AddressGenerator::AddAllocated (
"0.0.0.7");
274 Ipv4AddressGenerator::AddAllocated (
"0.0.0.8");
275 Ipv4AddressGenerator::AddAllocated (
"0.0.0.9");
277 Ipv4AddressGenerator::AddAllocated (
"0.0.0.11");
278 Ipv4AddressGenerator::AddAllocated (
"0.0.0.12");
279 Ipv4AddressGenerator::AddAllocated (
"0.0.0.13");
280 Ipv4AddressGenerator::AddAllocated (
"0.0.0.14");
282 Ipv4AddressGenerator::AddAllocated (
"0.0.0.19");
283 Ipv4AddressGenerator::AddAllocated (
"0.0.0.18");
284 Ipv4AddressGenerator::AddAllocated (
"0.0.0.17");
285 Ipv4AddressGenerator::AddAllocated (
"0.0.0.16");
287 Ipv4AddressGenerator::TestMode ();
288 bool added = Ipv4AddressGenerator::AddAllocated (
"0.0.0.21");
289 NS_TEST_EXPECT_MSG_EQ (added,
true,
"XXX");
291 added = Ipv4AddressGenerator::AddAllocated (
"0.0.0.4");
292 NS_TEST_EXPECT_MSG_EQ (added,
false,
"XXX");
294 added = Ipv4AddressGenerator::AddAllocated (
"0.0.0.9");
295 NS_TEST_EXPECT_MSG_EQ (added,
false,
"XXX");
297 added = Ipv4AddressGenerator::AddAllocated (
"0.0.0.16");
298 NS_TEST_EXPECT_MSG_EQ (added,
false,
"XXX");
300 added = Ipv4AddressGenerator::AddAllocated (
"0.0.0.21");
301 NS_TEST_EXPECT_MSG_EQ (added,
false,
"XXX");
317 } g_ipv4AddressGeneratorTestSuite;
a class to represent an Ipv4 address mask
virtual void DoRun(void)
Implementation to actually run this test case.
void DoTeardown(void)
Implementation to do any local setup required for this test case.
TestSuite(std::string name, Type type=UNIT)
Constuct a new test suite.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoRun(void)
Implementation to actually run this test case.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual test case to this test suite.
virtual void DoTeardown(void)
Implementation to do any local setup required for this test case.
Ipv4 addresses are stored in host order in this class.
virtual void DoRun(void)
Implementation to actually run this test case.
void DoRun(void)
Implementation to actually run this test case.