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

Test TIM Information element serialization and deserialization. More...

+ Inheritance diagram for TimInformationElementTest:
+ Collaboration diagram for TimInformationElementTest:

Public Member Functions

 TimInformationElementTest ()
 Constructor.
 
void CheckAidSet (const Tim &tim, uint16_t aid, const std::set< uint16_t > &expectedSet)
 Test that the GetAidSet() method return the expected set of AID values.
 
void CheckSerializationAgainstBuffer (Tim &tim, const std::vector< uint8_t > &bufferContents)
 Test that the Bitmap Control and the Partial Virtual Bitmap fields of the provided TIM match the passed bufferContents.
 
void DoRun () override
 Implementation to actually run this TestCase.
 
void SetTim (Tim &tim, uint8_t dtimCount, uint8_t dtimPeriod, bool multicastPending, const std::list< uint16_t > &aidValues)
 Reset the passed TIM to have the provided parameters.
 
- Public Member Functions inherited from ns3::HeaderSerializationTestCase
template<typename T , typename... Args>
void TestHeaderSerialization (const T &hdr, Args &&... args)
 Serialize the given header in a buffer, then create a new header by deserializing from the buffer and serialize the new header into a new buffer.
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor.
 
std::string GetName () const
 
TestCaseoperator= (const TestCase &)=delete
 

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 TestDuration = 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::HeaderSerializationTestCase
 HeaderSerializationTestCase (std::string name)
 Constructor.
 
- 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

Test TIM Information element serialization and deserialization.

Definition at line 42 of file power-save-test.cc.

Constructor & Destructor Documentation

◆ TimInformationElementTest()

TimInformationElementTest::TimInformationElementTest ( )

Constructor.

Definition at line 85 of file power-save-test.cc.

Member Function Documentation

◆ CheckAidSet()

void TimInformationElementTest::CheckAidSet ( const Tim tim,
uint16_t  aid,
const std::set< uint16_t > &  expectedSet 
)

Test that the GetAidSet() method return the expected set of AID values.

Parameters
timthe TIM element
aidthe AID value passed to GetAidSet()
expectedSetthe expected set of AID values returned by GetAidSet()

Definition at line 135 of file power-save-test.cc.

References ns3::Tim::GetAidSet(), and NS_TEST_EXPECT_MSG_EQ.

Referenced by DoRun().

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

◆ CheckSerializationAgainstBuffer()

void TimInformationElementTest::CheckSerializationAgainstBuffer ( Tim tim,
const std::vector< uint8_t > &  bufferContents 
)

Test that the Bitmap Control and the Partial Virtual Bitmap fields of the provided TIM match the passed bufferContents.

Parameters
timthe provided TIM
bufferContentsthe expected content of the buffer

Definition at line 105 of file power-save-test.cc.

References ns3::Buffer::AddAtStart(), ns3::Buffer::Begin(), ns3::WifiInformationElement::GetSerializedSize(), ns3::Buffer::GetSize(), NS_TEST_EXPECT_MSG_EQ, ns3::Buffer::Iterator::ReadU8(), and ns3::WifiInformationElement::Serialize().

Referenced by DoRun().

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

◆ DoRun()

void TimInformationElementTest::DoRun ( )
overridevirtual

Implementation to actually run this TestCase.

Subclasses should override this method to conduct their tests.

Implements ns3::TestCase.

Definition at line 178 of file power-save-test.cc.

References CheckAidSet(), CheckSerializationAgainstBuffer(), ns3::WifiInformationElement::GetSerializedSize(), NS_TEST_EXPECT_MSG_EQ, SetTim(), and ns3::HeaderSerializationTestCase::TestHeaderSerialization().

+ Here is the call graph for this function:

◆ SetTim()

void TimInformationElementTest::SetTim ( Tim tim,
uint8_t  dtimCount,
uint8_t  dtimPeriod,
bool  multicastPending,
const std::list< uint16_t > &  aidValues 
)

Reset the passed TIM to have the provided parameters.

Parameters
timthe TIM element to set
dtimCountthe DTIM count value
dtimPeriodthe DTIM period value
multicastPendingwhether group addressed frames are queued
aidValuesthe AID values to set

Definition at line 91 of file power-save-test.cc.

References ns3::Tim::AddAid(), ns3::Tim::m_dtimCount, ns3::Tim::m_dtimPeriod, and ns3::Tim::m_hasMulticastPending.

Referenced by DoRun().

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

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