diff --git a/test/ErrorHandler.cpp b/test/ErrorHandler.cpp index 458ab616dfa2b8b7130ebad994ee7b28637cd9e9..33ad7bd1e3c123a2b94a0b6e547a1708fa0765fa 100644 --- a/test/ErrorHandler.cpp +++ b/test/ErrorHandler.cpp @@ -24,6 +24,52 @@ TEST_CASE("Error: Failed Acceptance", "[errors]") { CHECK(report.readEnum16() == ErrorHandler::MessageTooShort); } +TEST_CASE("Error: Failed Execution Start", "[errors]") { + Message failedMessage(38, 32, Message::TC, 56); + ErrorHandler::reportError(failedMessage, ErrorHandler::UnknownStartExecutionError); + + REQUIRE(ServiceTests::hasOneMessage()); + Message report = ServiceTests::get(0); + + // Check that a TM[1,3] message was returned + CHECK(report.serviceType == 1); + CHECK(report.messageType == 4); + CHECK(report.packetType == Message::TM); + REQUIRE(report.dataSize == 6); + + CHECK(report.readBits(3) == CCSDS_PACKET_VERSION); + CHECK(report.readBits(1) == static_cast<uint16_t>(Message::TC)); + CHECK(report.readBits(1) == false); + CHECK(report.readBits(11) == 56); + CHECK(report.readBits(2) == ECSS_SEQUENCE_FLAGS); + CHECK(report.readBits(14) == failedMessage.packetSequenceCount); + CHECK(report.readEnum16() == ErrorHandler::UnknownStartExecutionError); +} + +TEST_CASE("Error: Failed Execution Progress", "[errors]") { + Message failedMessage(38, 32, Message::TC, 56); + ErrorHandler::reportProgressError(failedMessage, ErrorHandler::UnknownProgressExecutionError, + ErrorHandler::UnknownStepID); + + REQUIRE(ServiceTests::hasOneMessage()); + Message report = ServiceTests::get(0); + + // Check that a TM[1,6] message was returned + CHECK(report.serviceType == 1); + CHECK(report.messageType == 6); + CHECK(report.packetType == Message::TM); + REQUIRE(report.dataSize == 8); + + CHECK(report.readBits(3) == CCSDS_PACKET_VERSION); + CHECK(report.readBits(1) == static_cast<uint16_t>(Message::TC)); + CHECK(report.readBits(1) == false); + CHECK(report.readBits(11) == 56); + CHECK(report.readBits(2) == ECSS_SEQUENCE_FLAGS); + CHECK(report.readBits(14) == failedMessage.packetSequenceCount); + CHECK(report.readEnum16() == ErrorHandler::UnknownStartExecutionError); + CHECK(report.readEnum16() == ErrorHandler::UnknownStepID); +} + TEST_CASE("Error: Failed Execution Completion", "[errors]") { Message failedMessage(38, 32, Message::TC, 56); ErrorHandler::reportError(failedMessage, ErrorHandler::UnknownCompletionExecutionError);