27 #include "../model/satellite-arq-sequence-number.h"
28 #include "../utils/satellite-env-variables.h"
32 #include "ns3/singleton.h"
52 virtual void DoRun(
void);
56 : TestCase(
"Test ARQ sequence numbers.")
68 Singleton<SatEnvVariables>::Get()->DoInitialize();
69 Singleton<SatEnvVariables>::Get()->SetOutputVariables(
"test-sat-arq-seqno",
"",
true);
71 uint32_t windowSize(10);
72 Ptr<SatArqSequenceNumber> seqNo = Create<SatArqSequenceNumber>(windowSize);
74 std::deque<uint32_t> seqNoWindow;
75 std::vector<uint32_t> allSeqNos;
77 for (uint32_t i = 0; i < 550; ++i)
79 if (seqNo->SeqNoAvailable())
81 uint32_t sn = uint32_t(seqNo->NextSequenceNumber());
82 allSeqNos.push_back(sn);
83 seqNoWindow.push_back(sn);
87 uint32_t oldest = seqNoWindow.front();
88 seqNo->Release(oldest);
89 seqNoWindow.pop_front();
93 for (uint32_t i = 0; i < allSeqNos.size(); ++i)
95 std::cout <<
"SN: " << allSeqNos[i] << std::endl;
98 Singleton<SatEnvVariables>::Get()->DoDispose();
112 : TestSuite(
"sat-arq-seqno-test", Type::UNIT)
virtual ~SatSeqNoTestCase()
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
static SatArqSeqNoTraceSuite SatSeqNoTestSuite