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 from, uint32_t nSlots)
 
void ExpectInternalCollision (uint64_t time, uint32_t from, uint32_t nSlots)
 
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)
 
void AddTestCase (TestCase *testCase, enum TestDuration duration)
 Add an individual child TestCase to this test suite. More...
 
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

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

Member Typedef Documentation

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

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

Constructor & Destructor Documentation

DcfManagerTest::DcfManagerTest ( )

Definition at line 152 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 309 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 315 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 323 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 303 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 339 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 237 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 289 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 296 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 279 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 272 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 263 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 353 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 346 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 169 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 333 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 363 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 246 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  from,
uint32_t  nSlots 
)
private

Definition at line 217 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  from,
uint32_t  nSlots 
)
private

Definition at line 208 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 196 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 227 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: