From d12baec37511179492aa08628b8781d24d881ffe Mon Sep 17 00:00:00 2001 From: Dimitrios Stoupis <dimitris.apple@gmail.com> Date: Wed, 20 Mar 2019 17:33:21 +0000 Subject: [PATCH] Remove currentNumberOfActivities - A potential bug --- inc/Services/TimeBasedSchedulingService.hpp | 5 ----- src/Services/TimeBasedSchedulingService.cpp | 7 ++----- test/Services/TimeBasedSchedulingService.cpp | 19 +------------------ 3 files changed, 3 insertions(+), 28 deletions(-) diff --git a/inc/Services/TimeBasedSchedulingService.hpp b/inc/Services/TimeBasedSchedulingService.hpp index 917e48bf..3e61db27 100644 --- a/inc/Services/TimeBasedSchedulingService.hpp +++ b/inc/Services/TimeBasedSchedulingService.hpp @@ -55,11 +55,6 @@ private: */ bool executionFunctionStatus = false; // True indicates "enabled" and False "disabled" state - /** - * @brief Number of activities currently in the schedule - * @todo Define the maximum allowed number of activities in the schedule - */ - uint8_t currentNumberOfActivities = 0; // Keep track of the number of activities MessageParser msgParser; // Parse TC packets /** diff --git a/src/Services/TimeBasedSchedulingService.cpp b/src/Services/TimeBasedSchedulingService.cpp index 34ab4073..bbcba14d 100644 --- a/src/Services/TimeBasedSchedulingService.cpp +++ b/src/Services/TimeBasedSchedulingService.cpp @@ -31,7 +31,6 @@ void TimeBasedSchedulingService::resetSchedule(Message &request) { executionFunctionStatus = false; // Disable the service scheduledActivities.clear(); // Delete all scheduled activities - currentNumberOfActivities = 0; // todo: Add resetting for sub-schedules and groups, if defined } @@ -48,7 +47,7 @@ void TimeBasedSchedulingService::insertActivities(Message &request) { uint32_t currentTime = TimeGetter::getUnixSeconds(); // Get the current system time uint32_t releaseTime = request.readUint32(); // Get the specified release time - if ((currentNumberOfActivities >= ECSS_MAX_NUMBER_OF_TIME_SCHED_ACTIVITIES) || + if ((scheduledActivities.size() >= ECSS_MAX_NUMBER_OF_TIME_SCHED_ACTIVITIES) || (releaseTime < (currentTime + ECSS_TIME_MARGIN_FOR_ACTIVATION))) { ErrorHandler::reportError(request, ErrorHandler::InstructionExecutionStartError); request.readPosition += ECSS_TC_REQUEST_STRING_SIZE; @@ -77,7 +76,6 @@ void TimeBasedSchedulingService::insertActivities(Message &request) { // Add activities ordered by release time as per the standard requirement scheduledActivities.insert(releaseTimeOrder, newActivity); - currentNumberOfActivities++; } } } @@ -190,7 +188,6 @@ void TimeBasedSchedulingService::deleteActivitiesByID(Message &request) { if (requestIDMatch != scheduledActivities.end()) { scheduledActivities.erase(requestIDMatch); // Delete activity from the schedule - currentNumberOfActivities--; } else { ErrorHandler::reportError(request, ErrorHandler::InstructionExecutionStartError); } @@ -205,7 +202,7 @@ void TimeBasedSchedulingService::detailReportAllActivities(Message &request) { // Create the report message object of telemetry message subtype 10 for each activity Message report = createTM(10); - report.appendUint16(currentNumberOfActivities); + report.appendUint16(static_cast<uint16_t >(scheduledActivities.size())); for (auto &activity : scheduledActivities) { // todo: append sub-schedule and group ID if they are defined diff --git a/test/Services/TimeBasedSchedulingService.cpp b/test/Services/TimeBasedSchedulingService.cpp index d02a55ed..d8db6ad9 100644 --- a/test/Services/TimeBasedSchedulingService.cpp +++ b/test/Services/TimeBasedSchedulingService.cpp @@ -12,10 +12,6 @@ namespace unit_test { return tmService.executionFunctionStatus; } - static uint8_t *currentNumberOfActivities(TimeBasedSchedulingService &tmService) { - return &tmService.currentNumberOfActivities; - } - static auto scheduledActivities(TimeBasedSchedulingService &tmService) { return &tmService.scheduledActivities; } @@ -104,9 +100,7 @@ TEST_CASE("TC[11,4] Activity Insertion", "[service][st11]") { TimeBasedSchedulingService timeService; auto scheduledActivities = activityInsertion(timeService); - CHECK(scheduledActivities->size() == 4); - - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); + REQUIRE(scheduledActivities->size() == 4); REQUIRE(scheduledActivities->at(0).requestReleaseTime == currentTime + 1556435); REQUIRE(scheduledActivities->at(1).requestReleaseTime == currentTime + 1726435); REQUIRE(scheduledActivities->at(2).requestReleaseTime == currentTime + 1957232); @@ -126,7 +120,6 @@ TEST_CASE("TC[11,15] Time shift all scheduled activities (Positive shift)", "[se receivedMessage.appendSint32(timeShift); CHECK(scheduledActivities->size() == 4); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); timeService.timeShiftAllActivities(receivedMessage); REQUIRE(scheduledActivities->at(0).requestReleaseTime == currentTime + 1556435 + timeShift); @@ -144,7 +137,6 @@ TEST_CASE("TC[11,15] Time shift all scheduled activities (Negative shift)", "[se receivedMessage.appendSint32(-timeShift); CHECK(scheduledActivities->size() == 4); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); timeService.timeShiftAllActivities(receivedMessage); REQUIRE(scheduledActivities->at(0).requestReleaseTime == currentTime + 1556435 - timeShift); @@ -161,7 +153,6 @@ TEST_CASE("TC[11,7] Time shift activities by ID (Positive Shift)", "[service][st // Verify that everything is in place CHECK(scheduledActivities->size() == 4); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); scheduledActivities->at(2).requestID.applicationID = 4; // Append a dummy application ID Message receivedMessage(11, 7, Message::TC, 1); @@ -185,7 +176,6 @@ TEST_CASE("TC[11,7] Time shift activities by ID (Negative Shift)", "[service][st // Verify that everything is in place CHECK(scheduledActivities->size() == 4); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); scheduledActivities->at(2).requestID.applicationID = 4; // Append a dummy application ID Message receivedMessage(11, 7, Message::TC, 1); @@ -209,7 +199,6 @@ TEST_CASE("TC[11,9] Detail report scheduled activities by ID", "[service][st11]" // Verify that everything is in place CHECK(scheduledActivities->size() == 4); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); scheduledActivities->at(0).requestID.applicationID = 8; // Append a dummy application ID scheduledActivities->at(2).requestID.applicationID = 4; // Append a dummy application ID @@ -255,7 +244,6 @@ TEST_CASE("TC[11,12] Summary report scheduled activities by ID", "[service][st11 // Verify that everything is in place CHECK(scheduledActivities->size() == 4); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); scheduledActivities->at(0).requestID.applicationID = 8; // Append a dummy application ID scheduledActivities->at(2).requestID.applicationID = 4; // Append a dummy application ID @@ -311,7 +299,6 @@ TEST_CASE("TC[11,16] Detail report all scheduled activities", "[service][st11]") uint16_t iterationCount = response.readUint16(); REQUIRE(iterationCount == scheduledActivities->size()); - REQUIRE(iterationCount == *unit_test::Tester::currentNumberOfActivities(timeService)); for (uint16_t i = 0; i < iterationCount; i++) { uint32_t receivedReleaseTime = response.readUint32(); @@ -332,7 +319,6 @@ TEST_CASE("TC[11,5] Activity deletion by ID", "[service][st11]") { // Verify that everything is in place CHECK(scheduledActivities->size() == 4); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); scheduledActivities->at(2).requestID.applicationID = 4; // Append a dummy application ID Message receivedMessage(11, 5, Message::TC, 1); @@ -342,10 +328,8 @@ TEST_CASE("TC[11,5] Activity deletion by ID", "[service][st11]") { receivedMessage.appendUint16(0); // todo: Remove the dummy sequence count CHECK(scheduledActivities->size() == 4); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 4); timeService.deleteActivitiesByID(receivedMessage); - CHECK(*unit_test::Tester::currentNumberOfActivities(timeService) == 3); REQUIRE(scheduledActivities->size() == 3); REQUIRE(scheduledActivities->at(2).requestReleaseTime == currentTime + 17248435); REQUIRE(scheduledActivities->at(2).request == testMessage4); @@ -359,6 +343,5 @@ TEST_CASE("TC[11,3] Reset schedule", "[service][st11]") { timeService.resetSchedule(receivedMessage); REQUIRE(scheduledActivities->empty()); - REQUIRE(*unit_test::Tester::currentNumberOfActivities(timeService) == 0); REQUIRE(not unit_test::Tester::executionFunctionStatus(timeService)); } -- GitLab