A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::olsr::TcRegressionTest Class Reference

Less trivial test of OLSR Topology Control message generation. More...

#include <tc-regression-test.h>

+ Inheritance diagram for ns3::olsr::TcRegressionTest:
+ Collaboration diagram for ns3::olsr::TcRegressionTest:

Public Member Functions

 TcRegressionTest ()
 
 ~TcRegressionTest ()
 
- Public Member Functions inherited from ns3::TestCase
virtual ~TestCase ()
 Destructor. More...
 
std::string GetName (void) const
 

Private Member Functions

void CheckResults ()
 Compare traces with reference ones. More...
 
void CreateNodes ()
 Create & configure test network. More...
 
void DoRun ()
 Go. More...
 

Private Attributes

const double m_step
 Distance between nodes in meters, 0.8 of RX range is recommended. More...
 
const Time m_time
 Total simulation time. More...
 

Static Private Attributes

static const char *const PREFIX = "olsr-tc-regression-test"
 Unique PCAP files prefix for this test. More...
 

Additional Inherited Members

- Public Types inherited from ns3::TestCase
enum  TestDuration { QUICK = 1, EXTENSIVE = 2, TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 
void AddTestCase (TestCase *testCase) NS_DEPRECATED
 Add an individual child TestCase case to this TestCase. More...
 
void AddTestCase (TestCase *testCase, enum TestDuration duration)
 Add an individual child TestCase to this test suite. More...
 
bool GetErrorStatus (void) const NS_DEPRECATED
 
TestCaseGetParent () const
 
bool IsStatusFailure (void) const
 
bool IsStatusSuccess (void) const
 
void SetDataDir (std::string directory)
 
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. More...
 
bool MustAssertOnFailure (void) const
 
bool MustContinueOnFailure (void) const
 
std::string CreateDataDirFilename (std::string filename)
 
std::string CreateTempDirFilename (std::string filename)
 

Detailed Description

Less trivial test of OLSR Topology Control message generation.

This test creates 3 WiFi stations with chain topology and runs OLSR without any extra traffic. It is expected that only second station will send TC messages.

Expected trace (20 seconds, note random b-cast jitter):

       1       2       3
       |<------|------>|              HELLO (empty) src = 10.1.1.2
       |       |<------|------>       HELLO (empty) src = 10.1.1.3
<------|------>|       |              HELLO (empty) src = 10.1.1.1
<------|------>|       |              HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.2) src = 10.1.1.1
       |       |<------|------>       HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.2) src = 10.1.1.3
       |<------|------>|              HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.3; Link Type: Asymmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
       |<------|------>|              HELLO (Link Type: Asymmetric, Neighbor: 10.1.1.3; Link Type: Asymmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
<------|------>|       |              HELLO (Link Type: Symmetric, Neighbor: 10.1.1.2) src = 10.1.1.1
       |       |<------|------>       HELLO (Link Type: Symmetric, Neighbor: 10.1.1.2) src = 10.1.1.3
       |<------|------>|              HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
<------|------>|       |              HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
       |       |<------|------>       HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
       |<------|------>|              HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
<------|------>|       |              HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
       |       |<------|------>       HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
       |<======|======>|              TC (10.1.1.3; 10.1.1.1) + HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
       |       |<------|------>       HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
<------|------>|       |              HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
       |<------|------>|              HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
<------|------>|       |              HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
       |       |<------|------>       HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
<------|------>|       |              HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
       |       |<------|------>       HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
       |<------|------>|              HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
       |<======|======>|              TC (10.1.1.3; 10.1.1.1) src = 10.1.1.2
       |       |<------|------>       HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
<------|------>|       |              HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
       |<------|------>|              HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2
<------|------>|       |              HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.1
       |       |<------|------>       HELLO (Link Type: MPR Link, Neighbor: 10.1.1.2) src = 10.1.1.3
       |<------|------>|              HELLO (Link Type: Symmetric, Neighbor: 10.1.1.3; Link Type: Symmetric, Neighbor: 10.1.1.1) src = 10.1.1.2

Definition at line 75 of file tc-regression-test.h.

Constructor & Destructor Documentation

ns3::olsr::TcRegressionTest::TcRegressionTest ( )

Definition at line 47 of file tc-regression-test.cc.

ns3::olsr::TcRegressionTest::~TcRegressionTest ( )

Definition at line 54 of file tc-regression-test.cc.

Member Function Documentation

void ns3::olsr::TcRegressionTest::CheckResults ( )
private

Compare traces with reference ones.

Definition at line 122 of file tc-regression-test.cc.

References NS_PCAP_TEST_EXPECT_EQ, and PREFIX.

Referenced by DoRun().

+ Here is the caller graph for this function:

void ns3::olsr::TcRegressionTest::DoRun ( void  )
privatevirtual

Member Data Documentation

const double ns3::olsr::TcRegressionTest::m_step
private

Distance between nodes in meters, 0.8 of RX range is recommended.

Definition at line 86 of file tc-regression-test.h.

Referenced by CreateNodes().

const Time ns3::olsr::TcRegressionTest::m_time
private

Total simulation time.

Definition at line 84 of file tc-regression-test.h.

Referenced by DoRun().

const char *const ns3::olsr::TcRegressionTest::PREFIX = "olsr-tc-regression-test"
staticprivate

Unique PCAP files prefix for this test.

Definition at line 82 of file tc-regression-test.h.

Referenced by CheckResults(), and CreateNodes().


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