mirror of
https://github.com/nasa/fprime.git
synced 2025-12-11 23:38:06 -06:00
* Update requirements to use new fpp version * Removed unneeded files * update FppTest for new autocoder changes * Get unit tests updated and working for fpp state machines phase 1 delivery * Rename Fw/SMTest to Fw/Sm * Update STARS to use FW_ASSERT * Rename SMSignalBuffer to SmSignalBuffer * Fix spelling issues with CI * Update requirements to the FPP alpha release v2.2.0a3 * Fix requirements.txt * Fix requirements.txt * Initialize data in the constructor of SmSignalBuffer * Add constructor list to all the constructors in SmSignalBuffer * Reorganize FppTest directories Move external state machine tests to state_machine/external * Add missing file * Reorganize FppTest/state_machine external --> external_instance * Add state machine test harness * Revise SmGuard * Fix include guard * Add header file for test harness * Revise Basic state machine * Revise Basic test * Add Junction test * Add missing file * Refactor internal state machine tests * Add Nested state machine * Revise Nested test * Revise state machine tests * Fix issues in string utils * Revise FppTest Add signals to state machine tests * Refactor state machine test harness * Revise autocode for Basic test Replace with actual autocode * Update fpp version Fix F Prime to match Switch initial/basic test from checked-in to auto-generated * Revise FppTest Make state machine guards const * Update fpp version Convert initial/Junction test to autocode * Update fpp version Make initial/nested test use autocode * Start to add State/Basic test * Revise FppTest Revise namespaces in state machine tests * Revise SmState::Basic test * Update fpp version Convert SmState/Basic test to use autocoding * Update FppTest * Add SmState/BasicSelf test * Add state/BasicGuard test * Add SmState/BasicU32 test * Revise state machine tests * Refactor state machine tests * Revise FppTest * Revise comments * Refactor state machine tests * Refactor state machine tests * Refactor state machine tests * Refactor state machine tests * Revise state machine tests * Revise state machine tests * Revise state machine tests * Revise state machine tests * Revise fpp tests * Revise state machine tests * Revise state machine tests * Revise state machine tests * Revise state machine tests * Revise state machine tests * Add README files to FPP tests * Start to add StateToState test * Revise StateToState test * Revise StateToState test * Revise StateToState test * Revise StateToState test * Revise StateToState test Remove hand-generated files * Revise StateToState tests * Add BasicInternal test * Update fpp version * Revise state machine tests * Add state-to-junction test * Add Internal state machine test * Add Polymorphism test * Add StateToChild test * Revise README files * Add junction/Basic test * Revise FppTest build * Update fpp version; revise Basic test * Revise junction tests * Add BasicGuardU32 test * Add BasicGuardString test * Add BasicGuardTestAbsType test * Add BasicGuardTestArray test * Add BasicGuardTestEnum test * Add BasicGuardTestStruct test * Add junction/Sequence test * Add junction/SequenceU32 test * Add junction/InputPairU16U32 test * Add JunctionToState.fpp * Add junction/JunctionToState test * Add junction/JunctionToJunction test * Update fpp version * Update fpp version Revise test code to match * Update fpp version * Update fpp version * Fix CMakeLists * Update fpp version * Update fpp version * Refactor sm tests * Refactor sm tests * Refactor sm tests * Update fpp version * Start to add internal_instance tests * Add missing files * Revise state machine tests * Revise state machine tests * Revise sm instance initial tests * Revise sm instance init tests * Revise sm instance initial tests * Revise sm instance initial tests * Add sm instance state tests * Revise sm instance state tests * Revise sm instance state tests * Revise sm instance state tests * Revise sm instance state tests * Revise internal instance state tests * Revise sm instance state tests * Revise sm instance state tests * Revsie BasicGuardTestAbsType * Revise sm instance state tests * Revise BasicGuardTestAbsType * Add BasicGuardTestArray * Add BasicGuardTestEnum * Add BasicGuardTestStruct * Add BasicGuardU32 * Add BasicInternal * Revise BasicInternal * Add BasicSelf * Reformat code * Add BasicString test * Add BasicTestAbsType * Add BasicTestArray * Add BasicTestEnum * Add BasicTestStruct * Add BasicU32 * Remove extraneous file * Remove extraneous files * Revise sm tests * Revise state machine tests * Add Internal test * Add Polymorphism test * Add StateToChild test * Add StateToJunction test * Add StateToSelf test * Add StateToState test * Add junction/Basic * Add BasicU32 test * Add InputPairU16U32 * Add JunctionToJunction * Revise comments * Add JunctionToState * Revise JunctionToState * Revise JunctionToJunction * Add Sequence test * Add Sequence test * Revise SequenceU32 test * Revise state machine tests Add tests for queued components * Revise Basic test Add schedIn handler * Revise junction/Basic test Add schedIn handler * Revise state/Basic test Add schedIn handler * Revise initial/Basic test Add multiple instances of the same state machine * Revise state/Basic test Add multiple instances of the same state machine * Reformat code * Update fpp version * Update fpp; revise FppTest * Refactor internal/initial tests * Revise state machine tests * Revise internal/state tests * Revise state-machine/internal tests Rename junction to choice * Revise state-machine/internal tests * Reformat C++ files * Revise state-machine/internal_instance/initial tests * Revise internal_instance/state tests * Format code * Revise internal_instance/choice tests * Update fpp version * Format code * Update fpp version * Improve const correctness in Fw/Port * Update design * Revise state machines design * Revise state machine design * Revise state machine design * Revise state machine design * Revise state machine design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machine instances design * Revise state machines design * Revise state machines design * Revise state machines design * Update fpp version * Update fpp version; revise code to match * Update fpp version * Revise state machines design * Revise state machines design Add class diagram * Revise state machines design * Revise state machines design * Revise typography Close up spaces in names with embedded variables * Revise state machines design * Revise state machines design * Revise state machines design * Revise state machine unit tests * Revise state machine tests Increase code coverage * Revise state machine tests Increase code coverage * Update fpp version * Update spelling * Remove Design directory This directory no longer exists in fprime/devel * Update mkdocs --------- Co-authored-by: watney <garth.j.watney@jpl.nasa.gov> Co-authored-by: garthwatney <160269551+garthwatney@users.noreply.github.com> Co-authored-by: M Starch <LeStarch@googlemail.com>
78 lines
2.8 KiB
C++
78 lines
2.8 KiB
C++
// ======================================================================
|
|
//
|
|
// \title BasicGuardString.hpp
|
|
// \author R. Bocchino
|
|
// \brief Test class for basic state machine with string guard (implementation)
|
|
//
|
|
// \copyright
|
|
// Copyright 2024, by the California Institute of Technology.
|
|
// ALL RIGHTS RESERVED. United States Government Sponsorship
|
|
// acknowledged.
|
|
//
|
|
// ======================================================================
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
#include "FppTest/state_machine/internal/state/BasicGuardString.hpp"
|
|
#include "STest/STest/Pick/Pick.hpp"
|
|
|
|
namespace FppTest {
|
|
|
|
namespace SmState {
|
|
|
|
BasicGuardString::BasicGuardString() : BasicGuardStringStateMachineBase(), m_action_a_history(), m_guard_g() {}
|
|
|
|
void BasicGuardString::action_a(Signal signal, const Fw::StringBase& value) {
|
|
this->m_action_a_history.push(signal, Fw::String(value));
|
|
}
|
|
|
|
bool BasicGuardString::guard_g(Signal signal, const Fw::StringBase& value) const {
|
|
return this->m_guard_g.call(signal, Fw::String(value));
|
|
}
|
|
|
|
void BasicGuardString::testFalse() {
|
|
this->m_action_a_history.clear();
|
|
this->m_guard_g.reset();
|
|
const FwEnumStoreType id = SmHarness::Pick::stateMachineId();
|
|
this->initBase(id);
|
|
ASSERT_EQ(this->m_id, id);
|
|
ASSERT_EQ(this->getState(), State::S);
|
|
ASSERT_EQ(this->m_action_a_history.getSize(), 0);
|
|
ASSERT_EQ(this->m_guard_g.getCallHistory().getSize(), 0);
|
|
Fw::String value;
|
|
SmHarness::Pick::string(value);
|
|
this->sendSignal_s(value);
|
|
ASSERT_EQ(this->getState(), State::S);
|
|
ASSERT_EQ(this->m_guard_g.getCallHistory().getSize(), 1);
|
|
ASSERT_EQ(this->m_guard_g.getCallHistory().getSignals().getItemAt(0), Signal::s);
|
|
ASSERT_EQ(this->m_guard_g.getCallHistory().getValues().getItemAt(0), value);
|
|
ASSERT_EQ(this->m_action_a_history.getSize(), 0);
|
|
}
|
|
|
|
void BasicGuardString::testTrue() {
|
|
this->m_action_a_history.clear();
|
|
this->m_guard_g.reset();
|
|
this->m_guard_g.setReturnValue(true);
|
|
const FwEnumStoreType id = SmHarness::Pick::stateMachineId();
|
|
this->initBase(id);
|
|
ASSERT_EQ(this->m_id, id);
|
|
ASSERT_EQ(this->getState(), State::S);
|
|
ASSERT_EQ(this->m_action_a_history.getSize(), 0);
|
|
Fw::String value;
|
|
SmHarness::Pick::string(value);
|
|
this->sendSignal_s(value);
|
|
ASSERT_EQ(this->getState(), State::T);
|
|
this->sendSignal_s(value);
|
|
ASSERT_EQ(this->getState(), State::T);
|
|
ASSERT_EQ(this->m_guard_g.getCallHistory().getSize(), 1);
|
|
ASSERT_EQ(this->m_guard_g.getCallHistory().getSignals().getItemAt(0), Signal::s);
|
|
ASSERT_EQ(this->m_guard_g.getCallHistory().getValues().getItemAt(0), value);
|
|
ASSERT_EQ(this->m_action_a_history.getSize(), 1);
|
|
ASSERT_EQ(this->m_action_a_history.getSignals().getItemAt(0), Signal::s);
|
|
ASSERT_EQ(this->m_action_a_history.getValues().getItemAt(0), value);
|
|
}
|
|
|
|
} // namespace SmState
|
|
|
|
} // end namespace FppTest
|