59 #include "Mockfram_cfg.h"
61 #include "Mocksys_mon_cfg.h"
68 #define DUMMY_TASK_ID_0 0
69 #define DUMMY_TASK_ID_1 1
70 #define DUMMY_TASK_ID_2 2
71 #define DUMMY_CYCLETIME 10
72 #define DUMMY_MAX_JITTER 1
152 OS_GetTickCount_ExpectAndReturn(0u);
158 OS_GetTickCount_ExpectAndReturn(0u);
161 OS_GetTickCount_ExpectAndReturn(100u);
166 OS_EnterTaskCritical_Ignore();
167 OS_ExitTaskCritical_Ignore();
170 OS_GetTickCount_ExpectAndReturn(0u);
178 OS_GetTickCount_ExpectAndReturn(100u);
179 DIAG_Handler_ExpectAndReturn(
186 OS_EnterTaskCritical_Ignore();
187 OS_ExitTaskCritical_Ignore();
190 OS_GetTickCount_ExpectAndReturn(0u);
198 OS_GetTickCount_ExpectAndReturn(100u);
199 DIAG_Handler_ExpectAndReturn(
213 TEST_ASSERT_NOT_EQUAL(424242, notifications[
SYSM_TASK_ID_MAX + 1u].timestampEnter);
218 OS_EnterTaskCritical_Expect();
219 OS_ExitTaskCritical_Expect();
222 TEST_ASSERT_EQUAL(UINT32_MAX, notifications[
DUMMY_TASK_ID_0].timestampEnter);
224 OS_EnterTaskCritical_Expect();
225 OS_ExitTaskCritical_Expect();
233 OS_EnterTaskCritical_Expect();
234 OS_ExitTaskCritical_Expect();
237 TEST_ASSERT_EQUAL(UINT32_MAX, notifications[
DUMMY_TASK_ID_0].timestampEnter);
239 const uint32 exitTime = 100;
240 OS_EnterTaskCritical_Expect();
241 OS_ExitTaskCritical_Expect();
244 TEST_ASSERT_EQUAL(exitTime, notifications[
DUMMY_TASK_ID_0].timestampExit);
246 TEST_ASSERT_EQUAL(exitTime + 1, notifications[
DUMMY_TASK_ID_0].duration);
251 OS_EnterTaskCritical_Ignore();
256 TEST_ASSERT_NOT_EQUAL(UINT32_MAX, notifications[
DUMMY_TASK_ID_0].timestampEnter);
257 TEST_ASSERT_NOT_EQUAL(UINT32_MAX, notifications[
DUMMY_TASK_ID_0].timestampExit);
262 OS_EnterTaskCritical_Ignore();
263 OS_ExitTaskCritical_Ignore();
298 .task100msAlgorithmEnterTimestamp = 1,
299 .task100msAlgorithmViolatingDuration = 2,
300 .task100msEnterTimestamp = 3,
301 .task100msViolatingDuration = 4,
302 .task10msEnterTimestamp = 5,
303 .task10msViolatingDuration = 6,
304 .task1msEnterTimestamp = 7,
305 .task1msViolatingDuration = 8,
306 .taskEngineEnterTimestamp = 9,
307 .taskEngineViolatingDuration = 10,
311 .task100msAlgorithmEnterTimestamp = 0,
312 .task100msAlgorithmViolatingDuration = 0,
313 .task100msEnterTimestamp = 0,
314 .task100msViolatingDuration = 0,
315 .task10msEnterTimestamp = 0,
316 .task10msViolatingDuration = 0,
317 .task1msEnterTimestamp = 0,
318 .task1msViolatingDuration = 0,
319 .taskEngineEnterTimestamp = 0,
320 .taskEngineViolatingDuration = 0,
@ DIAG_ID_SYSTEMMONITORING
Assert macro implementation.
@ FRAM_BLOCK_ID_SYS_MON_RECORD
#define NULL_PTR
Null pointer.
struct that stores for each task the last violation of timing
uint32_t taskEngineViolatingDuration
uint32_t taskEngineEnterTimestamp
bool anyTimingIssueOccurred
uint32_t task10msViolatingDuration
uint32_t task100msViolatingDuration
uint32_t task100msEnterTimestamp
uint32_t task1msViolatingDuration
uint32_t task100msAlgorithmEnterTimestamp
uint32_t task10msEnterTimestamp
uint32_t task1msEnterTimestamp
uint32_t task100msAlgorithmViolatingDuration
bool recordedViolationEngine
bool recordedViolation10ms
bool recordedViolation100ms
bool recordedViolation1ms
bool recordedViolation100msAlgo
bool recordedViolationAny
SYSM_NOTIFICATION_s * TEST_SYSM_GetNotifications(void)
void SYSM_GetRecordedTimingViolations(SYSM_TIMING_VIOLATION_RESPONSE_s *pAnswer)
Returns the timing violation flags determined from fram state.
void SYSM_CheckNotifications(void)
overall system monitoring
void SYSM_Notify(SYSM_TASK_ID_e taskId, SYSM_NOTIFY_TYPE_e state, uint32_t timestamp)
Sets needed bits to indicate that a task is running.
void SYSM_UpdateFramData(void)
Commits the stored changes to FRAM if necessary.
void SYSM_CopyFramStruct(const FRAM_SYS_MON_RECORD_s *const kpkFrom, FRAM_SYS_MON_RECORD_s *pTo)
Copy from the from entry to the to entry.
@ SYSM_RECORDING_DISABLED
@ SYSM_HANDLING_SWITCHOFFCONTACTOR
#define TEST_ASSERT_PASS_ASSERT(_code_under_test)
assert whether assert macro has passed
#define TEST_ASSERT_FAIL_ASSERT(_code_under_test)
assert whether assert macro has failed
FRAM_SYS_MON_RECORD_s fram_sys_mon_record
void TEST_SYSM_DummyCallback_1(SYSM_TASK_ID_e taskId)
void TEST_SYSM_DummyCallback_2(SYSM_TASK_ID_e taskId)
void testSYSM_NotifyHitAssertWithIllegalNotifyType(void)
void testSYSM_NotifyInvalidTaskID(void)
void testSYSM_CheckNotificationsSYSMDisabled(void)
void testSYSM_CheckNotificationsProvokeDurationViolation(void)
void TEST_SYSM_DummyCallback_0(SYSM_TASK_ID_e taskId)
void testSYSM_GetRecordedTimingViolations(void)
void testSYSM_CopyFramStructInvalidInput(void)
void testSYSM_CheckNotificationsEarlyExitOnTimestampEquality(void)
void testSYSM_CheckNotificationsProvokeDurationViolationWithRecording(void)
SYSM_MONITORING_CFG_s sysm_ch_cfg[3]
void testSYSM_NotifyEnterTimestampProperlySet(void)
void testSYSM_CopyFramStruct(void)
void testSYSM_NotifyExitTimestampProperlySetAndDurationCalculated(void)