mirror of
https://gitlab.ibr.cs.tu-bs.de/tschuber/ns-3-leo.git
synced 2025-06-08 10:03:58 +02:00
Refactor ISL channel test
This commit is contained in:
parent
aac4765f30
commit
0b239204b4
1 changed files with 44 additions and 69 deletions
|
@ -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<IslMockChannel> channel = CreateObject<IslMockChannel> ();
|
||||
Packet *packet = new Packet ();
|
||||
Ptr<Packet> p = Ptr<Packet>(packet);
|
||||
Ptr<MockNetDevice> dev = CreateObject<MockNetDevice> ();
|
||||
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<IslMockChannel> channel = CreateObject<IslMockChannel> ();
|
||||
Packet *packet = new Packet ();
|
||||
Ptr<Packet> p = Ptr<Packet>(packet);
|
||||
Ptr<MockNetDevice> dev = CreateObject<MockNetDevice> ();
|
||||
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<IslMockChannel> channel = CreateObject<IslMockChannel> ();
|
||||
|
||||
Packet *packet = new Packet ();
|
||||
Ptr<Packet> p = Ptr<Packet>(packet);
|
||||
|
||||
Ptr<Node> srcNode = CreateObject<Node> ();
|
||||
Ptr<MockNetDevice> srcDev = CreateObject<MockNetDevice> ();
|
||||
srcDev->SetNode (srcNode);
|
||||
srcDev->SetAddress (Mac48Address::Allocate ());
|
||||
int32_t srcId = channel->Attach (srcDev);
|
||||
|
||||
Ptr<Node> dstNode = CreateObject<Node> ();
|
||||
Ptr<MockNetDevice> dstDev = CreateObject<MockNetDevice> ();
|
||||
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<IslMockChannel> channel = CreateObject<IslMockChannel> ();
|
||||
|
||||
Packet *packet = new Packet ();
|
||||
Ptr<Packet> p = Ptr<Packet>(packet);
|
||||
|
||||
Ptr<Node> srcNode = CreateObject<Node> ();
|
||||
Ptr<MockNetDevice> srcDev = CreateObject<MockNetDevice> ();
|
||||
srcDev->SetNode (srcNode);
|
||||
srcDev->SetAddress (Mac48Address::Allocate ());
|
||||
int32_t srcId = channel->Attach (srcDev);
|
||||
|
||||
Ptr<Node> dstNode = CreateObject<Node> ();
|
||||
Ptr<MockNetDevice> dstDev = CreateObject<MockNetDevice> ();
|
||||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue