diff --git a/.gitmodules b/.gitmodules index 8cf8b5e334..a90256beb7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "googletest"] path = googletest url = https://github.com/google/googletest.git +[submodule "STARS"] + path = STARS + url = https://github.com/JPLOpenSource/STARS.git diff --git a/STARS b/STARS new file mode 160000 index 0000000000..21bafd3abd --- /dev/null +++ b/STARS @@ -0,0 +1 @@ +Subproject commit 21bafd3abd7f45b5a38c00592a6ffd61e0540ed5 diff --git a/Svc/FPManager/CMakeLists.txt b/Svc/FPManager/CMakeLists.txt index fa5b3590f8..b4f954af58 100644 --- a/Svc/FPManager/CMakeLists.txt +++ b/Svc/FPManager/CMakeLists.txt @@ -4,8 +4,11 @@ # Note: using PROJECT_NAME as EXECUTABLE_NAME set(SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/FPManager.fpp" + "${CMAKE_CURRENT_LIST_DIR}/SMEvents.fpp" "${CMAKE_CURRENT_LIST_DIR}/TlmDict.fppi" "${CMAKE_CURRENT_LIST_DIR}/FPManagerImpl.cpp" + "${CMAKE_CURRENT_LIST_DIR}/FPManagerSm.cpp" + "${CMAKE_CURRENT_LIST_DIR}/FPManagerSm.cpp" "${CMAKE_CURRENT_LIST_DIR}/Response.cpp" "${CMAKE_CURRENT_LIST_DIR}/CommandSerializer.cpp" "${CMAKE_CURRENT_LIST_DIR}/FPResponseTable.cpp" @@ -20,6 +23,7 @@ register_fprime_module() # set(UT_SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/FPManager.fpp" + "${CMAKE_CURRENT_LIST_DIR}/SMEvents.fpp" "${CMAKE_CURRENT_LIST_DIR}/test/ut/Tester.cpp" "${CMAKE_CURRENT_LIST_DIR}/test/ut/TestMain.cpp" "${CMAKE_CURRENT_LIST_DIR}/test/ut/ResponseExecutionRules.cpp" diff --git a/Svc/FPManager/CMakeLists.txt.tmpl b/Svc/FPManager/CMakeLists.txt.tmpl index c18035dd62..feec27dbea 100755 --- a/Svc/FPManager/CMakeLists.txt.tmpl +++ b/Svc/FPManager/CMakeLists.txt.tmpl @@ -8,8 +8,11 @@ #### set(SOURCE_FILES "\${CMAKE_CURRENT_LIST_DIR}/FPManager.fpp" + "\${CMAKE_CURRENT_LIST_DIR}/SMEvents.fpp" "\${CMAKE_CURRENT_LIST_DIR}/TlmDict.fppi" "\${CMAKE_CURRENT_LIST_DIR}/FPManagerImpl.cpp" + "\${CMAKE_CURRENT_LIST_DIR}/FPManagerSm.cpp" + "\${CMAKE_CURRENT_LIST_DIR}/FPManagerSm.cpp" "\${CMAKE_CURRENT_LIST_DIR}/Response.cpp" "\${CMAKE_CURRENT_LIST_DIR}/CommandSerializer.cpp" "\${CMAKE_CURRENT_LIST_DIR}/FPResponseTable.cpp" @@ -24,6 +27,7 @@ register_fprime_module() # ### UTs ### set(UT_SOURCE_FILES "\${CMAKE_CURRENT_LIST_DIR}/FPManager.fpp" + "\${CMAKE_CURRENT_LIST_DIR}/SMEvents.fpp" "\${CMAKE_CURRENT_LIST_DIR}/test/ut/Tester.cpp" "\${CMAKE_CURRENT_LIST_DIR}/test/ut/TestMain.cpp" "\${CMAKE_CURRENT_LIST_DIR}/test/ut/ResponseExecutionRules.cpp" diff --git a/Svc/FPManager/CommandOpcodes.hpp b/Svc/FPManager/CommandOpcodes.hpp index 4984e2d561..f3f131b5c5 100755 --- a/Svc/FPManager/CommandOpcodes.hpp +++ b/Svc/FPManager/CommandOpcodes.hpp @@ -27,9 +27,9 @@ namespace Svc { namespace OPCODES { enum Opcodes { + CMD_TEST_CMD_1 = 0x502, CMD_CLEAR_TRACKING = 0x503, CMD_NO_OP = 0x500, - CMD_TEST_CMD_1 = 0x502, }; } diff --git a/Svc/FPManager/CommandSerializer.cpp b/Svc/FPManager/CommandSerializer.cpp index 1ea2ccd6a2..af0b33cc3b 100644 --- a/Svc/FPManager/CommandSerializer.cpp +++ b/Svc/FPManager/CommandSerializer.cpp @@ -29,7 +29,10 @@ namespace Svc { Fw::SerializeStatus - CMD_CLEAR_TRACKING( + CMD_TEST_CMD_1( + I32 arg1, + F32 arg2, + U8 arg3, Fw::ComBuffer& comBuffer ) { @@ -41,16 +44,25 @@ namespace Svc { status = comBuffer.serialize(descriptor); // Serialize the opcode if (status == Fw::FW_SERIALIZE_OK) { - FwOpcodeType opcode = OPCODES::CMD_CLEAR_TRACKING; + FwOpcodeType opcode = OPCODES::CMD_TEST_CMD_1; status = comBuffer.serialize(opcode); } // Serialize arguments + if (status == Fw::FW_SERIALIZE_OK) { + status = comBuffer.serialize(arg1); + } + if (status == Fw::FW_SERIALIZE_OK) { + status = comBuffer.serialize(arg2); + } + if (status == Fw::FW_SERIALIZE_OK) { + status = comBuffer.serialize(arg3); + } return status; } Fw::SerializeStatus - CMD_NO_OP( + CMD_CLEAR_TRACKING( Fw::ComBuffer& comBuffer ) { @@ -62,7 +74,7 @@ namespace Svc { status = comBuffer.serialize(descriptor); // Serialize the opcode if (status == Fw::FW_SERIALIZE_OK) { - FwOpcodeType opcode = OPCODES::CMD_NO_OP; + FwOpcodeType opcode = OPCODES::CMD_CLEAR_TRACKING; status = comBuffer.serialize(opcode); } // Serialize arguments @@ -71,10 +83,7 @@ namespace Svc { Fw::SerializeStatus - CMD_TEST_CMD_1( - I32 arg1, - F32 arg2, - U8 arg3, + CMD_NO_OP( Fw::ComBuffer& comBuffer ) { @@ -86,19 +95,10 @@ namespace Svc { status = comBuffer.serialize(descriptor); // Serialize the opcode if (status == Fw::FW_SERIALIZE_OK) { - FwOpcodeType opcode = OPCODES::CMD_TEST_CMD_1; + FwOpcodeType opcode = OPCODES::CMD_NO_OP; status = comBuffer.serialize(opcode); } // Serialize arguments - if (status == Fw::FW_SERIALIZE_OK) { - status = comBuffer.serialize(arg1); - } - if (status == Fw::FW_SERIALIZE_OK) { - status = comBuffer.serialize(arg2); - } - if (status == Fw::FW_SERIALIZE_OK) { - status = comBuffer.serialize(arg3); - } return status; } diff --git a/Svc/FPManager/CommandSerializer.hpp b/Svc/FPManager/CommandSerializer.hpp index 6390cd0906..0e2912e208 100644 --- a/Svc/FPManager/CommandSerializer.hpp +++ b/Svc/FPManager/CommandSerializer.hpp @@ -33,26 +33,26 @@ namespace Svc { namespace CommandSerializer { - //! Serialize a CMD_CLEAR_TRACKING command + //! Serialize a CMD_TEST_CMD_1 command //! return The serialization status - Fw::SerializeStatus CMD_CLEAR_TRACKING ( + Fw::SerializeStatus CMD_TEST_CMD_1 ( + I32 arg1, + F32 arg2, + U8 arg3, Fw::ComBuffer& comBuffer //!< The result ); - //! Serialize a CMD_NO_OP command + //! Serialize a CMD_CLEAR_TRACKING command //! return The serialization status - Fw::SerializeStatus CMD_NO_OP ( + Fw::SerializeStatus CMD_CLEAR_TRACKING ( Fw::ComBuffer& comBuffer //!< The result ); - //! Serialize a CMD_TEST_CMD_1 command + //! Serialize a CMD_NO_OP command //! return The serialization status - Fw::SerializeStatus CMD_TEST_CMD_1 ( - I32 arg1, - F32 arg2, - U8 arg3, + Fw::SerializeStatus CMD_NO_OP ( Fw::ComBuffer& comBuffer //!< The result ); diff --git a/Svc/FPManager/FPManager.fpp b/Svc/FPManager/FPManager.fpp index e7d6ed9b5f..248d450070 100755 --- a/Svc/FPManager/FPManager.fpp +++ b/Svc/FPManager/FPManager.fpp @@ -48,6 +48,9 @@ module Svc { telemetry port Tlm + @ internal port for handling state-machine Events + internal port sendEvents(ev: Svc.SMEvents) + # ---------------------------------------------------------------------- # Commands diff --git a/Svc/FPManager/FPManagerImpl.cpp b/Svc/FPManager/FPManagerImpl.cpp index 8ecf7a3868..8d7ceea439 100755 --- a/Svc/FPManager/FPManagerImpl.cpp +++ b/Svc/FPManager/FPManagerImpl.cpp @@ -31,7 +31,7 @@ Os::BufferQueue FPManagerImpl::respPendingQue; FPManagerImpl::FPManagerImpl(const char* compName) : FPManagerComponentBase(compName), - fpState(IDLE), + fpManagerSm(this), saveDroppedMessages(0), responsePackedState(0), autoThrottleEvrClrCtr(0), @@ -72,6 +72,9 @@ void FPManagerImpl::init(NATIVE_INT_TYPE queueDepth, NATIVE_INT_TYPE instance) { // Send out the response enable/disable state telemetry packRespStateTelemetry(); + // Initialize the state machine + fpManagerSm.init(); + } @@ -151,66 +154,8 @@ void FPManagerImpl::Run_handler( log_WARNING_HI_FP_RESPONSES_DROPPED(droppedMessages); } - if ( this->fpState == IDLE) { - U8 response; - // Pop from the pending response queue - NATIVE_UINT_TYPE size = sizeof(response); - NATIVE_INT_TYPE priority; - - - // If the response pending queue is not empty then pop the queue and start a response - if (!this->respPendingQue.isEmpty()) { - bool qRes = respPendingQue.pop(reinterpret_cast(&response), size, priority); - FW_ASSERT(qRes); - } else { - return; - } - - FW_ASSERT( (response <= FPResponses::NUMBER_RESPONSES) && (response > 0), response); - - // Set the current response - this->currentResponse = this->responseTable[response-1].response; - - // Start the response - this->currentResponse->start(); - log_WARNING_HI_FP_RESPONSE_STARTED(response); - - - this->fpState = RUNNING; - - } else { - // fpState is RUNNING - // Pull the next command from the currently executing response command list - // Dispatch the command to the output comCmdOut port - // If there are no more commands to be dispatched for this response then update the last response - // value, update the response counter and generate an EVR indicating this response has completed - // execution, then return back command response OK via the CmdStatus output port. Set the fpState - // to Idle. + sendEvent(FPManagerSm::RTI_SIG); - Fw::ComBuffer comBuffer; - - FW_ASSERT(this->currentResponse != 0); - - if ( this->currentResponse->run(comBuffer) ) { - comCmdOut_out(0, comBuffer, 0); - } else { - // Response has completed - U32 id = this->currentResponse->getId(); - log_WARNING_HI_FP_RESPONSE_COMPLETED(id); - - // Push out telemetry completion - FW_ASSERT( (id <= FPResponses::NUMBER_RESPONSES) && (id > 0), id); - FW_ASSERT(tlmResponseComplete[id-1] != NULL); - (this->*(tlmResponseComplete[id-1]))(this->currentResponse->getNumberCompletes(), Fw::Time()); - - tlmWrite_FP_LastResponseComplete(id); - - - this->fpState = IDLE; - this->currentResponse = 0; - - } - } } void FPManagerImpl::cmdResponseIn_handler( @@ -380,4 +325,71 @@ void FPManagerImpl::packRespStateTelemetry(void) { } +void FPManagerImpl::sendEvent(U32 eventSignal) { + Svc::SMEvents event; + event.seteventSignal(eventSignal); + sendEvents_internalInterfaceInvoke(event); +} + + void FPManagerImpl::sendEvents_internalInterfaceHandler(const Svc::SMEvents& ev) +{ + this->fpManagerSm.update(&ev); +} + + + +// State machine functions +// +bool FPManagerImpl::FPManagerSm_emptyQueue() { + return (this->respPendingQue.isEmpty()); +} + +bool FPManagerImpl::FPManagerSm_responseRunning() { + Fw::ComBuffer comBuffer; + if (this->currentResponse->run(comBuffer)) + { + comCmdOut_out(0, comBuffer, 0); + return true; + } else { + return false; + } +} + +void FPManagerImpl::FPManagerSm_startNextResponse() { + U8 response; + NATIVE_UINT_TYPE size = sizeof(response); + NATIVE_INT_TYPE priority; + + bool qRes = respPendingQue.pop(reinterpret_cast(&response), size, priority); + FW_ASSERT(qRes); + + FW_ASSERT( (response <= FPResponses::NUMBER_RESPONSES) && (response > 0), response); + + // Set the current response + this->currentResponse = this->responseTable[response-1].response; + + // Start the response + this->currentResponse->start(); + log_WARNING_HI_FP_RESPONSE_STARTED(response); + +} + + +void FPManagerImpl::FPManagerSm_reportResponseComplete() { + U32 id = this->currentResponse->getId(); + log_WARNING_HI_FP_RESPONSE_COMPLETED(id); + + // Push out telemetry completion + FW_ASSERT( (id <= FPResponses::NUMBER_RESPONSES) && (id > 0), id); + FW_ASSERT(tlmResponseComplete[id-1] != NULL); + (this->*(tlmResponseComplete[id-1]))(this->currentResponse->getNumberCompletes(), Fw::Time()); + + tlmWrite_FP_LastResponseComplete(id); + + this->currentResponse = 0; + + +} + + } diff --git a/Svc/FPManager/FPManagerImpl.hpp b/Svc/FPManager/FPManagerImpl.hpp index 61e1936332..a7ec8535cb 100755 --- a/Svc/FPManager/FPManagerImpl.hpp +++ b/Svc/FPManager/FPManagerImpl.hpp @@ -26,6 +26,8 @@ #include #include #include +#include + namespace Svc { @@ -34,8 +36,11 @@ namespace Svc { //! //! -class FPManagerImpl : public FPManagerComponentBase { +class FPManagerImpl : + public FPManagerComponentBase, + public FPManagerSmIf { public: + FPManagerSm fpManagerSm; //! Component constructor //! @@ -51,13 +56,6 @@ class FPManagerImpl : public FPManagerComponentBase { LOW_PRIORITY = 1, } ResponsePriority; - //! State of the FPManager component - //! - typedef enum FPState { - IDLE, - RUNNING - } FPState; - //! Rate in which Throttled EVR's will be automatically cleared //! typedef enum AutoThrottleClearRate{ @@ -164,9 +162,6 @@ class FPManagerImpl : public FPManagerComponentBase { //! Private data declarations - //! Fault Protection state - running or idle - FPState fpState; - //! Keep track of how many times a message is dropped //! because the component's input queue is full //! @@ -198,6 +193,19 @@ class FPManagerImpl : public FPManagerComponentBase { //! static const TlmWrite_FuncPtr1 tlmResponseComplete[FPResponses::NUMBER_RESPONSES]; + // Internal Interface handler for sendEvents + void sendEvents_internalInterfaceHandler(const Svc::SMEvents& ev); + + void sendEvent(U32 eventSignal); + + + // State machine functions + bool FPManagerSm_emptyQueue() override; + bool FPManagerSm_responseRunning() override; + void FPManagerSm_startNextResponse() override; + void FPManagerSm_reportResponseComplete() override; + + }; } diff --git a/Svc/FPManager/FPManagerSm.cpp b/Svc/FPManager/FPManagerSm.cpp new file mode 100644 index 0000000000..496ae2c9e3 --- /dev/null +++ b/Svc/FPManager/FPManagerSm.cpp @@ -0,0 +1,80 @@ + +// ====================================================================== +// \title FPManagerSm.cpp +// \author Auto-generated +// \brief cpp file for state machine FPManagerSm +// +// \copyright +// Copyright 2009-2015, by the California Institute of Technology. +// ALL RIGHTS RESERVED. United States Government Sponsorship +// acknowledged. +// +// ====================================================================== + +#include "stdio.h" +#include "assert.h" +#include "SMEvents.hpp" +#include "FPManagerSm.h" + + +void Svc::FPManagerSm::init() +{ + this->state = IDLE; + +} + + +void Svc::FPManagerSm::update(const Svc::SMEvents *e) +{ + switch (this->state) { + + /** + * state IDLE + */ + case IDLE: + + switch (e->geteventSignal()) { + + case RTI_SIG: + if ( parent->FPManagerSm_emptyQueue() ) { + this->state = IDLE; + } + else { + parent->FPManagerSm_startNextResponse(); + this->state = RUNNING; + } + + break; + + default: + break; + } + break; + + /** + * state RUNNING + */ + case RUNNING: + + switch (e->geteventSignal()) { + + case RTI_SIG: + if ( parent->FPManagerSm_responseRunning() ) { + this->state = RUNNING; + } + else { + parent->FPManagerSm_reportResponseComplete(); + this->state = IDLE; + } + + break; + + default: + break; + } + break; + + default: + assert(0); + } +} diff --git a/Svc/FPManager/FPManagerSm.h b/Svc/FPManager/FPManagerSm.h new file mode 100644 index 0000000000..cbb6755faf --- /dev/null +++ b/Svc/FPManager/FPManagerSm.h @@ -0,0 +1,61 @@ + +// ====================================================================== +// \title FPManagerSm.h +// \author Auto-generated +// \brief header file for state machine FPManagerSm +// +// \copyright +// Copyright 2009-2015, by the California Institute of Technology. +// ALL RIGHTS RESERVED. United States Government Sponsorship +// acknowledged. +// +// ====================================================================== + +#ifndef FPMANAGERSM_H_ +#define FPMANAGERSM_H_ + +namespace Svc { + class SMEvents; +} + +namespace Svc { + +class FPManagerSmIf { + public: + virtual bool FPManagerSm_emptyQueue() = 0; + virtual bool FPManagerSm_responseRunning() = 0; + virtual void FPManagerSm_startNextResponse() = 0; + virtual void FPManagerSm_reportResponseComplete() = 0; + +}; + +class FPManagerSm { + + private: + FPManagerSmIf *parent; + + public: + + FPManagerSm(FPManagerSmIf* parent) : parent(parent) {} + + enum FPManagerSmStates { + IDLE, + RUNNING, + }; + + enum FPManagerSmEvents { + RTI_SIG, + }; + + enum FPManagerSmStates state; + + void * extension; + + void init(); + void update(const Svc::SMEvents *e); + +}; + +} + +#endif diff --git a/Svc/FPManager/FPManagerSm.plantuml b/Svc/FPManager/FPManagerSm.plantuml new file mode 100644 index 0000000000..4a50dd70ab --- /dev/null +++ b/Svc/FPManager/FPManagerSm.plantuml @@ -0,0 +1,22 @@ +@startuml + +[*] --> IDLE + +state IDLE { +} + +state RUNNING { +} + +state c1 <> +state c2 <> + +IDLE --> c1: RTI +c1 --> IDLE: [emptyQueue()] +c1 --> RUNNING: /startNextResponse() + +RUNNING --> c2: RTI +c2 --> RUNNING: [responseRunning()] +c2 --> IDLE: /reportResponseComplete() + +@enduml diff --git a/Svc/FPManager/FPManagerSm.trans b/Svc/FPManager/FPManagerSm.trans new file mode 100644 index 0000000000..a40d07122f --- /dev/null +++ b/Svc/FPManager/FPManagerSm.trans @@ -0,0 +1,4 @@ +InitialState = IDLE, Event = RTI, guard = emptyQueue(), action = None, TargetState = IDLE +InitialState = IDLE, Event = RTI, guard = None, action = startNextResponse(), TargetState = RUNNING +InitialState = RUNNING, Event = RTI, guard = responseRunning(), action = None, TargetState = RUNNING +InitialState = RUNNING, Event = RTI, guard = None, action = reportResponseComplete(), TargetState = IDLE diff --git a/Svc/FPManager/FPManagerSmStatesEnumAi.xml b/Svc/FPManager/FPManagerSmStatesEnumAi.xml new file mode 100644 index 0000000000..69d6892948 --- /dev/null +++ b/Svc/FPManager/FPManagerSmStatesEnumAi.xml @@ -0,0 +1,8 @@ + + + + Enum of FPManagerSm state-machine states + + + + diff --git a/Svc/FPManager/Makefile b/Svc/FPManager/Makefile new file mode 100644 index 0000000000..0ea7157b47 --- /dev/null +++ b/Svc/FPManager/Makefile @@ -0,0 +1,7 @@ +BACK-END = fprime +NAMESPACE = Svc +MODEL = FPManagerSm + +autocode: + @printf "**** Running the state-machine autocoder ****\n" + ../../STARS/autocoder/Stars.py $(BACK-END) -namespace $(NAMESPACE) -noImpl $(MODEL).plantuml diff --git a/Svc/FPManager/SMEvents.fpp b/Svc/FPManager/SMEvents.fpp new file mode 100644 index 0000000000..d01cc1f1ea --- /dev/null +++ b/Svc/FPManager/SMEvents.fpp @@ -0,0 +1,9 @@ +module Svc { + + struct SMEvents { + smId : U32 + eventSignal: U32 + payload: [128] U8 + } + +} diff --git a/Svc/FPManager/SMEvents.hpp b/Svc/FPManager/SMEvents.hpp new file mode 100644 index 0000000000..4158d8426a --- /dev/null +++ b/Svc/FPManager/SMEvents.hpp @@ -0,0 +1 @@ +#include "Svc/FPManager/SMEventsSerializableAc.hpp" diff --git a/Svc/FPManager/docs/SequenceDiagram.plantuml b/Svc/FPManager/docs/SequenceDiagram.plantuml index 78655fbe83..2a45cd1758 100644 --- a/Svc/FPManager/docs/SequenceDiagram.plantuml +++ b/Svc/FPManager/docs/SequenceDiagram.plantuml @@ -14,16 +14,22 @@ FPManager -[#red]>> FPManager : queue.push(Resp1) rg10Hz -[#blue]> FPManager : sched FPManager -[#red]>> FPManager : queue.pop() FPManager -[#red]>> Resp1 : start() -Resp1 -[#blue]> CmdDispatcher : Cmd1 hnote over FPManager: RUNNING rg10Hz -[#blue]> FPManager : sched FPManager -[#red]>> Resp1 : run() -Resp1 -[#blue]> CmdDispatcher : Cmd2 +Resp1 --> FPManager : cmdBuffer +FPManager -[#blue]> CmdDispatcher : Cmd1 rg10Hz -[#blue]> FPManager : sched FPManager -[#red]>> Resp1 : run() -Resp1 -[#blue]> CmdDispatcher : Cmd3 +Resp1 --> FPManager : cmdBuffer +FPManager -[#blue]> CmdDispatcher : Cmd2 + +rg10Hz -[#blue]> FPManager : sched +FPManager -[#red]>> Resp1 : run() +Resp1 --> FPManager : cmdBuffer +FPManager -[#blue]> CmdDispatcher : Cmd3 rg10Hz -> FPManager : sched FPManager -[#red]>> Resp1 : run() diff --git a/Svc/FPManager/docs/SequenceDiagram.png b/Svc/FPManager/docs/SequenceDiagram.png index b8a3cf25d9..851a5ffdbd 100644 Binary files a/Svc/FPManager/docs/SequenceDiagram.png and b/Svc/FPManager/docs/SequenceDiagram.png differ diff --git a/Svc/FPManager/test/ut/ResponseExecutionRules.cpp b/Svc/FPManager/test/ut/ResponseExecutionRules.cpp index 45902943da..f63bfff5d2 100755 --- a/Svc/FPManager/test/ut/ResponseExecutionRules.cpp +++ b/Svc/FPManager/test/ut/ResponseExecutionRules.cpp @@ -352,7 +352,7 @@ void IndicateRESP_1DroppedQueued::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while (tester.component.fpState != FPManagerImpl::IDLE); + } while (tester.component.fpManagerSm.state != FPManagerSm::IDLE); } @@ -427,7 +427,10 @@ void IndicateRESP_1DroppedExecuting::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while (tester.component.fpState != FPManagerImpl::IDLE); + } while (tester.component.fpManagerSm.state != FPManagerSm::IDLE); + + + } @@ -672,7 +675,7 @@ void IndicateRESP_2DroppedQueued::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while (tester.component.fpState != FPManagerImpl::IDLE); + } while (tester.component.fpManagerSm.state != FPManagerSm::IDLE); } @@ -747,7 +750,10 @@ void IndicateRESP_2DroppedExecuting::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while (tester.component.fpState != FPManagerImpl::IDLE); + } while (tester.component.fpManagerSm.state != FPManagerSm::IDLE); + + + } @@ -992,7 +998,7 @@ void IndicateSAFINGDroppedQueued::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while (tester.component.fpState != FPManagerImpl::IDLE); + } while (tester.component.fpManagerSm.state != FPManagerSm::IDLE); } @@ -1067,7 +1073,10 @@ void IndicateSAFINGDroppedExecuting::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while (tester.component.fpState != FPManagerImpl::IDLE); + } while (tester.component.fpManagerSm.state != FPManagerSm::IDLE); + + + } diff --git a/Svc/FPManager/test/ut/ResponseExecutionRules.cpp.tmpl b/Svc/FPManager/test/ut/ResponseExecutionRules.cpp.tmpl index f2179cc8bf..09c605a33e 100755 --- a/Svc/FPManager/test/ut/ResponseExecutionRules.cpp.tmpl +++ b/Svc/FPManager/test/ut/ResponseExecutionRules.cpp.tmpl @@ -334,7 +334,7 @@ void Indicate$(resp)DroppedQueued::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while (tester.component.fpState != FPManagerImpl::IDLE); + } while (tester.component.fpManagerSm.state != FPManagerSm::IDLE); } @@ -409,7 +409,10 @@ void Indicate$(resp)DroppedExecuting::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while (tester.component.fpState != FPManagerImpl::IDLE); + } while (tester.component.fpManagerSm.state != FPManagerSm::IDLE); + + + } diff --git a/Svc/FPManager/test/ut/TestMain.cpp b/Svc/FPManager/test/ut/TestMain.cpp index 04f9d73a66..d68c273146 100644 --- a/Svc/FPManager/test/ut/TestMain.cpp +++ b/Svc/FPManager/test/ut/TestMain.cpp @@ -4,12 +4,12 @@ #include "Tester.hpp" - TEST(Test, indicateResponsesDisabled) { Svc::Tester tester; tester.indicateResponsesDisabled(); } + TEST(Test, indicateResponsesQueued) { Svc::Tester tester; tester.indicateResponsesQueued(); diff --git a/Svc/FPManager/test/ut/TestRules.cpp b/Svc/FPManager/test/ut/TestRules.cpp index c0606b59c6..15528b6897 100755 --- a/Svc/FPManager/test/ut/TestRules.cpp +++ b/Svc/FPManager/test/ut/TestRules.cpp @@ -72,7 +72,7 @@ void CheckPriorityQ::action(Tester& tester) { do { tester.invoke_to_Run(0, 0); tester.dispatchAll(); - } while ( (!tester.component.respPendingQue.isEmpty()) || (tester.component.fpState != FPManagerImpl::IDLE) ); + } while ( (!tester.component.respPendingQue.isEmpty()) || (tester.component.fpManagerSm.state != FPManagerSm::IDLE) ); tester.assertEvents_FP_RESPONSE_STARTED_size(__FILE__, __LINE__, FPResponses::NUMBER_RESPONSES-1); tester.assertEvents_FP_RESPONSE_COMPLETED_size(__FILE__, __LINE__, FPResponses::NUMBER_RESPONSES-1);