10#include "ns3/sequence-number.h"
12#include "ns3/trace-source-accessor.h"
13#include "ns3/traced-value.h"
48 TypeId(
"ns3::SequenceNumberTestObj")
51 "TestTracedSequenceNumber",
52 "A traceable sequence number",
54 "ns3::SequenceNumber32TracedValueCallback")
89 void DoRun()
override;
93 :
TestCase(
"Sequence number test case")
113#define SEQ_TEST_ASSERT_EQUAL(a, b) NS_TEST_ASSERT_MSG_EQ(a, b, "foo")
114#define SEQ_TEST_ASSERT(a) NS_TEST_ASSERT_MSG_EQ(bool(a), true, "foo")
121 value = (num1 + num2).GetValue();
195 obj->TraceConnectWithoutContext(
196 "TestTracedSequenceNumber",
198 obj->IncSequenceNumber();
208 for (
uint32_t index = 0; index <= std::numeric_limits<uint16_t>::max(); index++)
211 ((num1 - num2) > 0 && (num2 > num1)),
213 "Sequence number: difference and <=> are not agreeing for "
219 for (
uint32_t index = 0; index <= std::numeric_limits<uint16_t>::max(); index++)
222 ((num1 - num2) > 0 && (num2 > num1)),
224 "Sequence number: difference and <=> are not agreeing for "
234 for (
uint32_t index = 0; index < (1 << 5) - 1; index++)
238 ((num1 - num2) > 0 && (num2 > num1)),
240 "Sequence number: difference and <=> are not agreeing for "
247 for (
uint32_t index = 0; index < (1 << 5) - 1; index++)
250 ((num1 - num2) > 0 && (num2 > num1)),
252 "Sequence number: difference and <=> are not agreeing for "
Sequence Number Unit Test.
~SequenceNumberTestCase() override
void DoRun() override
Implementation to actually run this TestCase.
SequenceNumber32 m_oldval
Old value.
void SequenceNumberTracer(SequenceNumber32 oldval, SequenceNumber32 newval)
Sequence number tracker.
SequenceNumber32 m_newval
New value.
Sequence Number TestSuite.
SequenceNumberTestSuite()
TracedValue< SequenceNumber32 > m_testTracedSequenceNumber
Test traced sequence number.
void IncSequenceNumber()
Increment the sequence number.
static TypeId GetTypeId()
Get the type ID.
Object()
Caller graph was not generated because of its size.
Smart pointer class similar to boost::intrusive_ptr.
Generic "sequence number" class.
constexpr NUMERIC_TYPE GetValue() const
Extracts the numeric value of the sequence number.
void AddTestCase(TestCase *testCase, Duration duration=Duration::QUICK)
Add an individual child TestCase to this test suite.
TestCase(const TestCase &)=delete
Caller graph was not generated because of its size.
@ UNIT
This test suite implements a Unit Test.
TestSuite(std::string name, Type type=Type::UNIT)
Construct a new test suite.
Trace classes with value semantics.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Callback< R, Args... > MakeCallback(R(T::*memPtr)(Args...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
SequenceNumber< uint16_t > SequenceNumber16
16 bit Sequence number.
SequenceNumber< uint32_t > SequenceNumber32
32 bit Sequence number.
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
#define SEQ_TEST_ASSERT_EQUAL(a, b)
static SequenceNumberTestSuite g_seqNumTests
Static variable for test initialization.
#define SEQ_TEST_ASSERT(a)