fprime/Svc/DpManager/test/ut/Rules/CLEAR_EVENT_THROTTLE.cpp
Rob Bocchino b89b5d91c4
Add DpWriter (#2593)
* Pull in framework changes from data-products branch

* Pull in changes to DpManager from data-products branch

* Pull in DpWriter from data-products branch

* Fix spelling

* Revise FileNameString

* Fix warnings in CI

* Fix static analysis warnings

* Fix static analysis warnings

* Revise formatting and comments

* Revise banner comments

* Revise FileNameString per PR comment

* Revise path names in config headers

If a header H.hpp exists in the F Prime source base, then

is dangerous. Because [project root] and [fprime root] are both
in the list of include paths, it's not clear whether this means "include
[project root]/config/H.hpp" or "include [fprime root]/config/H.hpp."

On the other hand,

or

has no such ambiguity, because only one of [project root]/config
and [fprime root]/config is in the list of include paths.

* Revise path names in config headers

If a header H.hpp exists in the F Prime source base, then

`#include "config/H.hpp"`

is dangerous. Because [project root] and [fprime root] are both
in the list of include paths, it's not clear whether this means "include
[project root]/config/H.hpp" or "include [fprime root]/config/H.hpp."

On the other hand,

include <config/H.hpp>

or

`#include "config/H.hpp"`

has no such ambiguity, because only one of [project root]/config
and [fprime root]/config is in the list of include paths.
2024-03-28 16:09:38 -07:00

60 lines
2.1 KiB
C++

// ======================================================================
// \title CLEAR_EVENT_THROTTLE.cpp
// \author Rob Bocchino
// \brief CLEAR_EVENT_THROTTLE class implementation
//
// \copyright
// Copyright (C) 2023 California Institute of Technology.
// ALL RIGHTS RESERVED. United States Government sponsorship
// acknowledged.
// ======================================================================
#include "STest/Pick/Pick.hpp"
#include "Svc/DpManager/test/ut/Rules/CLEAR_EVENT_THROTTLE.hpp"
#include "Svc/DpManager/test/ut/Rules/Testers.hpp"
namespace Svc {
// ----------------------------------------------------------------------
// Rule definitions
// ----------------------------------------------------------------------
bool TestState::precondition__CLEAR_EVENT_THROTTLE__OK() const {
return true;
}
void TestState::action__CLEAR_EVENT_THROTTLE__OK() {
// Clear history
this->clearHistory();
// Send the command
const NATIVE_INT_TYPE instance = static_cast<NATIVE_INT_TYPE>(STest::Pick::any());
const U32 cmdSeq = STest::Pick::any();
this->sendCmd_CLEAR_EVENT_THROTTLE(instance, cmdSeq);
this->component.doDispatch();
// Check the command response
ASSERT_CMD_RESPONSE_SIZE(1);
ASSERT_CMD_RESPONSE(0, DpManagerComponentBase::OPCODE_CLEAR_EVENT_THROTTLE, cmdSeq, Fw::CmdResponse::OK);
// Check the state
ASSERT_EQ(this->component.DpManagerComponentBase::m_BufferAllocationFailedThrottle, 0);
this->abstractState.bufferAllocationFailedEventCount = 0;
}
namespace CLEAR_EVENT_THROTTLE {
// ----------------------------------------------------------------------
// Tests
// ----------------------------------------------------------------------
void Tester::OK() {
Testers::bufferGetStatus.ruleInvalid.apply(this->testState);
for (FwSizeType i = 0; i <= DpManagerComponentBase::EVENTID_BUFFERALLOCATIONFAILED_THROTTLE; ++i) {
Testers::productRequestIn.ruleBufferInvalid.apply(this->testState);
}
this->ruleOK.apply(this->testState);
Testers::productRequestIn.ruleBufferInvalid.apply(this->testState);
}
} // namespace CLEAR_EVENT_THROTTLE
} // namespace Svc