mirror of
https://github.com/nasa/fprime.git
synced 2025-12-10 00:44:37 -06:00
* 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.
60 lines
2.1 KiB
C++
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
|