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
|
class IslMockChannelTransmitUnknownTestCase : public TestCase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
IslMockChannelTransmitUnknownTestCase ();
|
IslMockChannelTransmitUnknownTestCase () : TestCase ("transmission to broadcast address succeeds") {}
|
||||||
virtual ~IslMockChannelTransmitUnknownTestCase ();
|
virtual ~IslMockChannelTransmitUnknownTestCase () {}
|
||||||
|
|
||||||
private:
|
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
|
class IslMockChannelTransmitKnownTestCase : public TestCase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
IslMockChannelTransmitKnownTestCase ();
|
IslMockChannelTransmitKnownTestCase () : TestCase ("transmission to known destination succeeds") {}
|
||||||
virtual ~IslMockChannelTransmitKnownTestCase ();
|
virtual ~IslMockChannelTransmitKnownTestCase () {}
|
||||||
|
|
||||||
private:
|
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
|
class IslMockChannelTestSuite : public TestSuite
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -104,6 +78,7 @@ IslMockChannelTestSuite::IslMockChannelTestSuite ()
|
||||||
// TestDuration for TestCase can be QUICK, EXTENSIVE or TAKES_FOREVER
|
// TestDuration for TestCase can be QUICK, EXTENSIVE or TAKES_FOREVER
|
||||||
AddTestCase (new IslMockChannelTransmitUnknownTestCase, TestCase::QUICK);
|
AddTestCase (new IslMockChannelTransmitUnknownTestCase, TestCase::QUICK);
|
||||||
AddTestCase (new IslMockChannelTransmitKnownTestCase, TestCase::QUICK);
|
AddTestCase (new IslMockChannelTransmitKnownTestCase, TestCase::QUICK);
|
||||||
|
// TODO more test
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do not forget to allocate an instance of this TestSuite
|
// Do not forget to allocate an instance of this TestSuite
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue