A Discrete-Event Network Simulator
API
DcfManagerTest Class Reference
+ Inheritance diagram for DcfManagerTest:
+ Collaboration diagram for DcfManagerTest:

Public Member Functions

 DcfManagerTest ()
 
virtual void DoRun (void)
 Implementation to actually run this TestCase. More...
 
void NotifyAccessGranted (uint32_t i)
 
void NotifyChannelSwitching (uint32_t i)
 
void NotifyCollision (uint32_t i)
 
void NotifyInternalCollision (uint32_t i)
 
- Public Member Functions inherited from ns3::TestCase
virtual ~TestCase ()
 Destructor. More...
 
std::string GetName (void) const
 

Private Types

typedef std::vector< DcfStateTest * > DcfStates
 

Private Member Functions

void AddAccessRequest (uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t from)
 
void AddAccessRequestWithAckTimeout (uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t from)
 
void AddAccessRequestWithSuccessfullAck (uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t ackDelay, uint32_t from)
 
void AddAckTimeoutReset (uint64_t at)
 
void AddCcaBusyEvt (uint64_t at, uint64_t duration)
 
void AddDcfState (uint32_t aifsn)
 
void AddNavReset (uint64_t at, uint64_t duration)
 
void AddNavStart (uint64_t at, uint64_t duration)
 
void AddRxErrorEvt (uint64_t at, uint64_t duration)
 
void AddRxInsideSifsEvt (uint64_t at, uint64_t duration)
 
void AddRxOkEvt (uint64_t at, uint64_t duration)
 
void AddRxStartEvt (uint64_t at, uint64_t duration)
 
void AddSwitchingEvt (uint64_t at, uint64_t duration)
 
void AddTxEvt (uint64_t at, uint64_t duration)
 
void DoAccessRequest (uint64_t txTime, uint64_t expectedGrantTime, DcfStateTest *state)
 
void EndTest (void)
 
void ExpectCollision (uint64_t time, uint32_t nSlots, uint32_t from)
 
void ExpectInternalCollision (uint64_t time, uint32_t nSlots, uint32_t from)
 
void StartTest (uint64_t slotTime, uint64_t sifs, uint64_t eifsNoDifsNoSifs, uint32_t ackTimeoutValue=20)
 

Private Attributes

uint32_t m_ackTimeoutValue
 
DcfManagerm_dcfManager
 
DcfStates m_dcfStates
 

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)
 Constructor. More...
 
void AddTestCase (TestCase *testCase, enum TestDuration duration)
 Add an individual child TestCase to this test suite. More...
 
TestCaseGetParent () const
 Get the parent of this TestCsse. More...
 
bool IsStatusFailure (void) const
 Check if any tests failed. More...
 
bool IsStatusSuccess (void) const
 Check if all tests passed. More...
 
void SetDataDir (std::string directory)
 Set the data directory where reference trace files can be found. More...
 
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
 Check if this run should assert on failure. More...
 
bool MustContinueOnFailure (void) const
 Check if this run should continue on failure. More...
 
std::string CreateDataDirFilename (std::string filename)
 Construct the full path to a file in the data directory. More...
 
std::string CreateTempDirFilename (std::string filename)
 Construct the full path to a file in a temporary directory. More...
 

Detailed Description

Definition at line 63 of file dcf-manager-test.cc.

Member Typedef Documentation

typedef std::vector<DcfStateTest *> DcfManagerTest::DcfStates
private

Definition at line 104 of file dcf-manager-test.cc.

Constructor & Destructor Documentation

DcfManagerTest::DcfManagerTest ( )

Definition at line 163 of file dcf-manager-test.cc.

Member Function Documentation

void DcfManagerTest::AddAccessRequest ( uint64_t  at,
uint64_t  txTime,
uint64_t  expectedGrantTime,
uint32_t  from 
)
private

Definition at line 339 of file dcf-manager-test.cc.

References AddAccessRequestWithSuccessfullAck().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddAccessRequestWithAckTimeout ( uint64_t  at,
uint64_t  txTime,
uint64_t  expectedGrantTime,
uint32_t  from 
)
private

Definition at line 346 of file dcf-manager-test.cc.

References DoAccessRequest(), m_dcfStates, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddAccessRequestWithSuccessfullAck ( uint64_t  at,
uint64_t  txTime,
uint64_t  expectedGrantTime,
uint32_t  ackDelay,
uint32_t  from 
)
private
Parameters
attime to schedule DoAccessRequest event
txTimeDoAccessRequest txTime
expectedGrantTimeDoAccessRequest expectedGrantTime
ackDelayis delay of the ack after txEnd
fromDoAccessRequest DcfStateTest

Definition at line 355 of file dcf-manager-test.cc.

References AddAckTimeoutReset(), DoAccessRequest(), m_ackTimeoutValue, m_dcfStates, ns3::MicroSeconds(), ns3::Now(), and NS_ASSERT.

Referenced by AddAccessRequest(), and DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddAckTimeoutReset ( uint64_t  at)
private

Definition at line 332 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by AddAccessRequestWithSuccessfullAck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddCcaBusyEvt ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 373 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddDcfState ( uint32_t  aifsn)
private

Definition at line 262 of file dcf-manager-test.cc.

References ns3::DcfManager::Add(), DcfStateTest::DcfStateTest(), m_dcfManager, m_dcfStates, and ns3::DcfState::SetAifsn().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddNavReset ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 316 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddNavStart ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 324 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddRxErrorEvt ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 306 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddRxInsideSifsEvt ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 298 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddRxOkEvt ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 288 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddRxStartEvt ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 389 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddSwitchingEvt ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 381 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::AddTxEvt ( uint64_t  at,
uint64_t  duration 
)
private

Definition at line 184 of file dcf-manager-test.cc.

References m_dcfManager, ns3::MicroSeconds(), and ns3::Now().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::DoAccessRequest ( uint64_t  txTime,
uint64_t  expectedGrantTime,
DcfStateTest state 
)
private

Definition at line 366 of file dcf-manager-test.cc.

References m_dcfManager, DcfStateTest::QueueTx(), and ns3::DcfManager::RequestAccess().

Referenced by AddAccessRequestWithAckTimeout(), and AddAccessRequestWithSuccessfullAck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::DoRun ( void  )
virtual

Implementation to actually run this TestCase.

Subclasses should override this method to conduct their tests.

Implements ns3::TestCase.

Definition at line 397 of file dcf-manager-test.cc.

References AddAccessRequest(), AddAccessRequestWithAckTimeout(), AddAccessRequestWithSuccessfullAck(), AddCcaBusyEvt(), AddDcfState(), AddNavReset(), AddNavStart(), AddRxErrorEvt(), AddRxInsideSifsEvt(), AddRxOkEvt(), AddRxStartEvt(), AddSwitchingEvt(), AddTxEvt(), EndTest(), ExpectCollision(), ExpectInternalCollision(), and StartTest().

+ Here is the call graph for this function:

void DcfManagerTest::EndTest ( void  )
private

Definition at line 271 of file dcf-manager-test.cc.

References m_dcfManager, m_dcfStates, DcfStateTest::m_expectedCollision, DcfStateTest::m_expectedGrants, DcfStateTest::m_expectedInternalCollision, and NS_TEST_EXPECT_MSG_EQ.

Referenced by DoRun().

+ Here is the caller graph for this function:

void DcfManagerTest::ExpectCollision ( uint64_t  time,
uint32_t  nSlots,
uint32_t  from 
)
private

Definition at line 242 of file dcf-manager-test.cc.

References DcfStateTest::ExpectedCollision::at, m_dcfStates, DcfStateTest::m_expectedCollision, and DcfStateTest::ExpectedCollision::nSlots.

Referenced by DoRun().

+ Here is the caller graph for this function:

void DcfManagerTest::ExpectInternalCollision ( uint64_t  time,
uint32_t  nSlots,
uint32_t  from 
)
private

Definition at line 232 of file dcf-manager-test.cc.

References DcfStateTest::ExpectedCollision::at, m_dcfStates, DcfStateTest::m_expectedInternalCollision, and DcfStateTest::ExpectedCollision::nSlots.

Referenced by DoRun().

+ Here is the caller graph for this function:

void DcfManagerTest::NotifyAccessGranted ( uint32_t  i)
void DcfManagerTest::NotifyChannelSwitching ( uint32_t  i)

Definition at line 220 of file dcf-manager-test.cc.

References m_dcfStates, DcfStateTest::m_expectedGrants, ns3::MicroSeconds(), ns3::Now(), and NS_TEST_EXPECT_MSG_EQ.

Referenced by DcfStateTest::DoNotifyChannelSwitching().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DcfManagerTest::NotifyCollision ( uint32_t  i)
void DcfManagerTest::NotifyInternalCollision ( uint32_t  i)
void DcfManagerTest::StartTest ( uint64_t  slotTime,
uint64_t  sifs,
uint64_t  eifsNoDifsNoSifs,
uint32_t  ackTimeoutValue = 20 
)
private

Definition at line 252 of file dcf-manager-test.cc.

References ns3::DcfState::DcfManager, m_ackTimeoutValue, m_dcfManager, ns3::MicroSeconds(), ns3::DcfManager::SetEifsNoDifs(), ns3::DcfManager::SetSifs(), and ns3::DcfManager::SetSlot().

Referenced by DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

uint32_t DcfManagerTest::m_ackTimeoutValue
private

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