A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
Ns2MobilityHelperTest Class Reference

Every test case is supposed to: More...

+ Inheritance diagram for Ns2MobilityHelperTest:
+ Collaboration diagram for Ns2MobilityHelperTest:

Classes

struct  ReferencePoint
 Single record in mobility reference. More...
 

Public Member Functions

 Ns2MobilityHelperTest (const std::string &name, Time timeLimit, uint32_t nodes=1)
 Create new test case.
 
 ~Ns2MobilityHelperTest () override
 Empty.
 
void AddReferencePoint (const char *id, double sec, const Vector &p, const Vector &v)
 Add next reference point.
 
void AddReferencePoint (const ReferencePoint &r)
 Add next reference point.
 
void SetTrace (const std::string &trace)
 Set NS-2 trace to read as single large string (don't forget to add \n and quote "'s)
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor.
 
std::string GetName () const
 
TestCaseoperator= (const TestCase &)=delete
 

Private Member Functions

bool CheckInitialPositions ()
 Check that all initial positions are correct.
 
void CourseChange (std::string context, Ptr< const MobilityModel > mobility)
 Listen for course change events.
 
void CreateNodes () const
 Create and name nodes.
 
void DoRun () override
 Go.
 
void DoSetup () override
 Implementation to do any local setup required for this TestCase.
 
void DoTeardown () override
 Implementation to do any local setup required for this TestCase.
 
bool WriteTrace ()
 Dump NS-2 trace to tmp file.
 

Private Attributes

size_t m_nextRefPoint
 Next reference point to be checked.
 
uint32_t m_nodeCount
 Number of nodes used in the test.
 
std::vector< ReferencePointm_reference
 Reference mobility.
 
Time m_timeLimit
 Test time limit.
 
std::string m_trace
 Trace as string.
 
std::string m_traceFile
 TMP trace file name.
 

Additional Inherited Members

- Public Types inherited from ns3::TestCase
enum class  Duration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
using instead = Duration
 
- Static Public Attributes inherited from ns3::TestCase
static constexpr auto EXTENSIVE = Duration::EXTENSIVE
 
static constexpr auto QUICK = Duration::QUICK
 
static constexpr auto TAKES_FOREVER
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 Constructor.
 
void AddTestCase (TestCase *testCase, Duration duration=Duration::QUICK)
 Add an individual child TestCase to this test suite.
 
TestCaseGetParent () const
 Get the parent of this TestCase.
 
bool IsStatusFailure () const
 Check if any tests failed.
 
bool IsStatusSuccess () const
 Check if all tests passed.
 
void SetDataDir (std::string directory)
 Set the data directory where reference trace files can be found.
 
void ReportTestFailure (std::string cond, std::string actual, std::string limit, std::string message, std::string file, int32_t line)
 Log the failure of this TestCase.
 
bool MustAssertOnFailure () const
 Check if this run should assert on failure.
 
bool MustContinueOnFailure () const
 Check if this run should continue on failure.
 
std::string CreateDataDirFilename (std::string filename)
 Construct the full path to a file in the data directory.
 
std::string CreateTempDirFilename (std::string filename)
 Construct the full path to a file in a temporary directory.
 

Detailed Description

Every test case is supposed to:

  1. Generate short mobility trace file
  2. Read it back using Ns2MobilityHelper
  3. Check initial node positions and speeds.
  4. Run simulation listening for all CourseChange events and compare actual mobility with the reference

Definition at line 87 of file ns2-mobility-helper-test-suite.cc.

Constructor & Destructor Documentation

◆ Ns2MobilityHelperTest()

Ns2MobilityHelperTest::Ns2MobilityHelperTest ( const std::string &  name,
Time  timeLimit,
uint32_t  nodes = 1 
)
inline

Create new test case.

To make it useful SetTrace () and AddReferencePoint () must be called

Parameters
nameShort description
timeLimitTest time limit
nodesNumber of nodes used in the test trace, 1 by default

Definition at line 132 of file ns2-mobility-helper-test-suite.cc.

◆ ~Ns2MobilityHelperTest()

Ns2MobilityHelperTest::~Ns2MobilityHelperTest ( )
inlineoverride

Empty.

Definition at line 141 of file ns2-mobility-helper-test-suite.cc.

Member Function Documentation

◆ AddReferencePoint() [1/2]

void Ns2MobilityHelperTest::AddReferencePoint ( const char *  id,
double  sec,
const Vector &  p,
const Vector &  v 
)
inline

Add next reference point.

Parameters
idreference point id
secreference point ime (in seconds)
preference point position
vreference point velocity

Definition at line 170 of file ns2-mobility-helper-test-suite.cc.

References AddReferencePoint(), and ns3::Seconds().

+ Here is the call graph for this function:

◆ AddReferencePoint() [2/2]

void Ns2MobilityHelperTest::AddReferencePoint ( const ReferencePoint r)
inline

Add next reference point.

Parameters
rreference point to add

Definition at line 158 of file ns2-mobility-helper-test-suite.cc.

References m_reference.

Referenced by Ns2MobilityHelperTestSuite::Ns2MobilityHelperTestSuite(), and AddReferencePoint().

+ Here is the caller graph for this function:

◆ CheckInitialPositions()

bool Ns2MobilityHelperTest::CheckInitialPositions ( )
inlineprivate

Check that all initial positions are correct.

Returns
true on error.

Definition at line 221 of file ns2-mobility-helper-test-suite.cc.

References AreVectorsEqual(), ns3::TestCase::IsStatusFailure(), m_nextRefPoint, m_reference, Ns2MobilityHelperTest::ReferencePoint::node, NS_TEST_ASSERT_MSG_NE_RETURNS_BOOL, NS_TEST_EXPECT_MSG_EQ, Ns2MobilityHelperTest::ReferencePoint::pos, ns3::Seconds(), and Ns2MobilityHelperTest::ReferencePoint::vel.

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CourseChange()

void Ns2MobilityHelperTest::CourseChange ( std::string  context,
Ptr< const MobilityModel mobility 
)
inlineprivate

Listen for course change events.

Parameters
contextevent context
mobilitya pointer to the mobility model

Definition at line 255 of file ns2-mobility-helper-test-suite.cc.

References AreVectorsEqual(), ns3::Names::FindName(), ns3::Time::GetSeconds(), m_nextRefPoint, m_reference, Ns2MobilityHelperTest::ReferencePoint::node, ns3::Simulator::Now(), NS_ASSERT, NS_TEST_EXPECT_MSG_EQ, NS_TEST_EXPECT_MSG_LT, Ns2MobilityHelperTest::ReferencePoint::pos, Ns2MobilityHelperTest::ReferencePoint::time, and Ns2MobilityHelperTest::ReferencePoint::vel.

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateNodes()

void Ns2MobilityHelperTest::CreateNodes ( ) const
inlineprivate

Create and name nodes.

Definition at line 205 of file ns2-mobility-helper-test-suite.cc.

References ns3::Names::Add(), ns3::NodeContainer::Create(), ns3::NodeContainer::Get(), m_nodeCount, and nodes.

Referenced by DoSetup().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoRun()

void Ns2MobilityHelperTest::DoRun ( )
inlineoverrideprivatevirtual

Go.

Implements ns3::TestCase.

Definition at line 300 of file ns2-mobility-helper-test-suite.cc.

References CheckInitialPositions(), ns3::Config::Connect(), CourseChange(), m_reference, m_timeLimit, m_trace, m_traceFile, ns3::MakeCallback(), NS_TEST_ASSERT_MSG_EQ, ns3::Simulator::Run(), ns3::Simulator::Stop(), and WriteTrace().

+ Here is the call graph for this function:

◆ DoSetup()

void Ns2MobilityHelperTest::DoSetup ( )
inlineoverrideprivatevirtual

Implementation to do any local setup required for this TestCase.

Subclasses should override this method to perform any costly per-test setup before DoRun is invoked.

Reimplemented from ns3::TestCase.

Definition at line 288 of file ns2-mobility-helper-test-suite.cc.

References CreateNodes().

+ Here is the call graph for this function:

◆ DoTeardown()

void Ns2MobilityHelperTest::DoTeardown ( )
inlineoverrideprivatevirtual

Implementation to do any local setup required for this TestCase.

Subclasses should override this method to perform any costly per-test teardown

Reimplemented from ns3::TestCase.

Definition at line 293 of file ns2-mobility-helper-test-suite.cc.

References ns3::Names::Clear(), and ns3::Simulator::Destroy().

+ Here is the call graph for this function:

◆ SetTrace()

void Ns2MobilityHelperTest::SetTrace ( const std::string &  trace)
inline

Set NS-2 trace to read as single large string (don't forget to add \n and quote "'s)

Parameters
tracethe mobility trace

Definition at line 149 of file ns2-mobility-helper-test-suite.cc.

References m_trace.

Referenced by Ns2MobilityHelperTestSuite::Ns2MobilityHelperTestSuite().

+ Here is the caller graph for this function:

◆ WriteTrace()

bool Ns2MobilityHelperTest::WriteTrace ( )
inlineprivate

Dump NS-2 trace to tmp file.

Returns
true on error.

Definition at line 194 of file ns2-mobility-helper-test-suite.cc.

References ns3::TestCase::CreateTempDirFilename(), m_trace, m_traceFile, and NS_TEST_ASSERT_MSG_EQ_RETURNS_BOOL.

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_nextRefPoint

size_t Ns2MobilityHelperTest::m_nextRefPoint
private

Next reference point to be checked.

Definition at line 185 of file ns2-mobility-helper-test-suite.cc.

Referenced by CheckInitialPositions(), and CourseChange().

◆ m_nodeCount

uint32_t Ns2MobilityHelperTest::m_nodeCount
private

Number of nodes used in the test.

Definition at line 179 of file ns2-mobility-helper-test-suite.cc.

Referenced by CreateNodes().

◆ m_reference

std::vector<ReferencePoint> Ns2MobilityHelperTest::m_reference
private

Reference mobility.

Definition at line 183 of file ns2-mobility-helper-test-suite.cc.

Referenced by AddReferencePoint(), CheckInitialPositions(), CourseChange(), and DoRun().

◆ m_timeLimit

Time Ns2MobilityHelperTest::m_timeLimit
private

Test time limit.

Definition at line 177 of file ns2-mobility-helper-test-suite.cc.

Referenced by DoRun().

◆ m_trace

std::string Ns2MobilityHelperTest::m_trace
private

Trace as string.

Definition at line 181 of file ns2-mobility-helper-test-suite.cc.

Referenced by DoRun(), SetTrace(), and WriteTrace().

◆ m_traceFile

std::string Ns2MobilityHelperTest::m_traceFile
private

TMP trace file name.

Definition at line 187 of file ns2-mobility-helper-test-suite.cc.

Referenced by DoRun(), and WriteTrace().


The documentation for this class was generated from the following file: