From 0b239204b499e06d309e740533e6854d87568900 Mon Sep 17 00:00:00 2001 From: Tim Schubert Date: Sat, 29 Aug 2020 19:00:39 +0200 Subject: [PATCH] Refactor ISL channel test --- test/isl-mock-channel-test-suite.cc | 113 +++++++++++----------------- 1 file changed, 44 insertions(+), 69 deletions(-) diff --git a/test/isl-mock-channel-test-suite.cc b/test/isl-mock-channel-test-suite.cc index 3fb3ba2..b172d07 100644 --- a/test/isl-mock-channel-test-suite.cc +++ b/test/isl-mock-channel-test-suite.cc @@ -14,84 +14,58 @@ using namespace ns3; class IslMockChannelTransmitUnknownTestCase : public TestCase { public: - IslMockChannelTransmitUnknownTestCase (); - virtual ~IslMockChannelTransmitUnknownTestCase (); - + IslMockChannelTransmitUnknownTestCase () : TestCase ("transmission to broadcast address succeeds") {} + virtual ~IslMockChannelTransmitUnknownTestCase () {} private: - virtual void DoRun (void); + virtual void DoRun (void) + { + Ptr channel = CreateObject (); + Packet *packet = new Packet (); + Ptr p = Ptr(packet); + Ptr dev = CreateObject (); + dev->SetAddress (Mac48Address::Allocate ()); + int32_t srcId = channel->Attach (dev); + Address destAddr = Mac48Address::GetBroadcast (); + Time txTime; + bool result = channel->TransmitStart (p, srcId, destAddr, txTime); + + NS_TEST_ASSERT_MSG_EQ (result, true, "broadcast address does not transmit"); + } }; -IslMockChannelTransmitUnknownTestCase::IslMockChannelTransmitUnknownTestCase () - : TestCase ("Test transmission to broadcast address") -{ -} - -IslMockChannelTransmitUnknownTestCase::~IslMockChannelTransmitUnknownTestCase () -{ -} - -void -IslMockChannelTransmitUnknownTestCase::DoRun (void) -{ - Ptr channel = CreateObject (); - Packet *packet = new Packet (); - Ptr p = Ptr(packet); - Ptr dev = CreateObject (); - dev->SetAddress (Mac48Address::Allocate ()); - int32_t srcId = channel->Attach (dev); - Address destAddr = Mac48Address::GetBroadcast (); - Time txTime; - bool result = channel->TransmitStart (p, srcId, destAddr, txTime); - - NS_TEST_ASSERT_MSG_EQ (result, true, "Broadcast address delivers to all"); -} - class IslMockChannelTransmitKnownTestCase : public TestCase { public: - IslMockChannelTransmitKnownTestCase (); - virtual ~IslMockChannelTransmitKnownTestCase (); - + IslMockChannelTransmitKnownTestCase () : TestCase ("transmission to known destination succeeds") {} + virtual ~IslMockChannelTransmitKnownTestCase () {} private: - virtual void DoRun (void); + virtual void DoRun (void) + { + Ptr channel = CreateObject (); + + Packet *packet = new Packet (); + Ptr p = Ptr(packet); + + Ptr srcNode = CreateObject (); + Ptr srcDev = CreateObject (); + srcDev->SetNode (srcNode); + srcDev->SetAddress (Mac48Address::Allocate ()); + int32_t srcId = channel->Attach (srcDev); + + Ptr dstNode = CreateObject (); + Ptr dstDev = CreateObject (); + dstDev->SetNode (dstNode); + dstDev->SetAddress (Mac48Address::Allocate ()); + channel->Attach (dstDev); + + Address destAddr = dstDev->GetAddress (); + Time txTime; + bool result = channel->TransmitStart (p, srcId, destAddr, txTime); + + NS_TEST_ASSERT_MSG_EQ (result, true, "known destination did not deliver"); + } }; -IslMockChannelTransmitKnownTestCase::IslMockChannelTransmitKnownTestCase () - : TestCase ("Test transmission to known destination") -{ -} - -IslMockChannelTransmitKnownTestCase::~IslMockChannelTransmitKnownTestCase () -{ -} - -void -IslMockChannelTransmitKnownTestCase::DoRun (void) -{ - Ptr channel = CreateObject (); - - Packet *packet = new Packet (); - Ptr p = Ptr(packet); - - Ptr srcNode = CreateObject (); - Ptr srcDev = CreateObject (); - srcDev->SetNode (srcNode); - srcDev->SetAddress (Mac48Address::Allocate ()); - int32_t srcId = channel->Attach (srcDev); - - Ptr dstNode = CreateObject (); - Ptr dstDev = CreateObject (); - dstDev->SetNode (dstNode); - dstDev->SetAddress (Mac48Address::Allocate ()); - channel->Attach (dstDev); - - Address destAddr = dstDev->GetAddress (); - Time txTime; - bool result = channel->TransmitStart (p, srcId, destAddr, txTime); - - NS_TEST_ASSERT_MSG_EQ (result, true, "Known destination delivers"); -} - class IslMockChannelTestSuite : public TestSuite { public: @@ -104,6 +78,7 @@ IslMockChannelTestSuite::IslMockChannelTestSuite () // TestDuration for TestCase can be QUICK, EXTENSIVE or TAKES_FOREVER AddTestCase (new IslMockChannelTransmitUnknownTestCase, TestCase::QUICK); AddTestCase (new IslMockChannelTransmitKnownTestCase, TestCase::QUICK); + // TODO more test } // Do not forget to allocate an instance of this TestSuite