From e8bf45a5d91a2c1ae59cfd3767b66b075748f60e Mon Sep 17 00:00:00 2001 From: Tim Schubert Date: Sat, 4 Jul 2020 15:14:48 +0200 Subject: [PATCH] WIP: Add tests for isl-mock-channel --- test/isl-mock-channel-test-suite.cc | 62 +++++++++++++++++++++++++++++ test/isl-test-suite.cc | 6 +-- wscript | 1 + 3 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 test/isl-mock-channel-test-suite.cc diff --git a/test/isl-mock-channel-test-suite.cc b/test/isl-mock-channel-test-suite.cc new file mode 100644 index 0000000..121ba08 --- /dev/null +++ b/test/isl-mock-channel-test-suite.cc @@ -0,0 +1,62 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ + +#include "ns3/core-module.h" +#include "ns3/network-module.h" +#include "ns3/internet-module.h" +#include "ns3/applications-module.h" +#include "ns3/node-container.h" + +#include "ns3/leo-module.h" +#include "ns3/test.h" + +using namespace ns3; + +class IslMockChannelTransmitTestCase : public TestCase +{ +public: + IslMockChannelTransmitTestCase (); + virtual ~IslMockChannelTransmitTestCase (); + +private: + virtual void DoRun (void); +}; + +IslMockChannelTransmitTestCase::IslMockChannelTransmitTestCase () + : TestCase ("Test channel transmission") +{ +} + +IslMockChannelTransmitTestCase::~IslMockChannelTransmitTestCase () +{ +} + +void +IslMockChannelTransmitTestCase::DoRun (void) +{ + Ptr channel = CreateObject (); + Packet *packet = new Packet (); + Ptr p = Ptr(packet); + Ptr dev = CreateObject (); + int32_t srcId = channel->Attach (dev); + Address destAddr; + Time txTime; + bool result = channel->TransmitStart (p, srcId, destAddr, txTime); + + NS_TEST_ASSERT_MSG_EQ (result, false, "Unknown destination fails to deliver"); +} + +class IslMockChannelTestSuite : public TestSuite +{ +public: + IslMockChannelTestSuite (); +}; + +IslMockChannelTestSuite::IslMockChannelTestSuite () + : TestSuite ("isl-mock-channel", UNIT) +{ + // TestDuration for TestCase can be QUICK, EXTENSIVE or TAKES_FOREVER + AddTestCase (new IslMockChannelTransmitTestCase, TestCase::QUICK); +} + +// Do not forget to allocate an instance of this TestSuite +static IslMockChannelTestSuite islMockChannelTestSuite; diff --git a/test/isl-test-suite.cc b/test/isl-test-suite.cc index f6355f9..ca2c504 100644 --- a/test/isl-test-suite.cc +++ b/test/isl-test-suite.cc @@ -56,6 +56,7 @@ IslIcmpTestCase::DoRun (void) NdCacheHelper nsHelper; nsHelper.Install (devices, interfaces); + // install echo server on all nodes UdpEchoServerHelper echoServer (9); ApplicationContainer serverApps = echoServer.Install (nodes); @@ -70,13 +71,12 @@ IslIcmpTestCase::DoRun (void) Address destAddress = interfaces.GetAddress (i, 0); echoClient.SetAttribute ("RemoteAddress", AddressValue (destAddress)); - clientApps.Add (echoClient.Install (nodes.Get (i-1))); + clientApps.Add (echoClient.Install (nodes.Get (0))); } + serverApps.Start (Seconds (1.0)); clientApps.Start (Seconds (2.0)); clientApps.Stop (Seconds (10.0)); - - serverApps.Start (Seconds (1.0)); serverApps.Stop (Seconds (10.0)); Simulator::Run (); diff --git a/wscript b/wscript index d0f6353..f9cb134 100644 --- a/wscript +++ b/wscript @@ -27,6 +27,7 @@ def build(bld): module_test.source = [ 'test/leo-test-suite.cc', 'test/isl-test-suite.cc', + 'test/isl-mock-channel-test-suite.cc', ] headers = bld(features='ns3header')