mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-10-26 23:36:32 -04:00
Update unit tests due to task notification changes (#1177)
This commit updates the CMock unit tests according to the changes introduced to https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/982. Co-authored-by: chinglee-iot <61685396+chinglee-iot@users.noreply.github.com> Co-authored-by: Rahul Kar <118818625+kar-rahul-aws@users.noreply.github.com>
This commit is contained in:
parent
b31b3d4eb3
commit
ce28d94516
3 changed files with 32 additions and 45 deletions
|
|
@ -583,6 +583,7 @@ void test_prvGetExpectedIdleTime_assert_nextUnblock_lt_xTickCount( void )
|
||||||
|
|
||||||
/* vTaskSuspendAll */
|
/* vTaskSuspendAll */
|
||||||
vFakePortAssertIfISR_Expect();
|
vFakePortAssertIfISR_Expect();
|
||||||
|
vFakePortGetCoreID_ExpectAndReturn( 0 );
|
||||||
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
||||||
vFakePortGetTaskLock_Expect();
|
vFakePortGetTaskLock_Expect();
|
||||||
vFakePortGetISRLock_Expect();
|
vFakePortGetISRLock_Expect();
|
||||||
|
|
|
||||||
|
|
@ -619,46 +619,6 @@ void test_coverage_vTaskPreemptionDisable_null_handle( void )
|
||||||
TEST_ASSERT_EQUAL( pdTRUE, pxCurrentTCBs[ 0 ]->xPreemptionDisable );
|
TEST_ASSERT_EQUAL( pdTRUE, pxCurrentTCBs[ 0 ]->xPreemptionDisable );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief This test ensures that when we call vTaskSuspendAll and we task of the
|
|
||||||
* current core has a critical nesting count of 1 only the scheduler is
|
|
||||||
* suspended
|
|
||||||
*
|
|
||||||
* <b>Coverage</b>
|
|
||||||
* @code{c}
|
|
||||||
* vTaskSuspendAll();
|
|
||||||
*
|
|
||||||
* if( portGET_CRITICAL_NESTING_COUNT() == 0U )
|
|
||||||
*
|
|
||||||
* @endcode
|
|
||||||
*
|
|
||||||
* configNUMBER_OF_CORES > 1
|
|
||||||
*/
|
|
||||||
void test_coverage_vTaskSuspendAll_critical_nesting_ne_zero( void )
|
|
||||||
{
|
|
||||||
TCB_t xTask = { 0 };
|
|
||||||
|
|
||||||
xTask.uxCriticalNesting = 1;
|
|
||||||
pxCurrentTCBs[ 0 ] = &xTask;
|
|
||||||
xSchedulerRunning = pdTRUE;
|
|
||||||
uxSchedulerSuspended = 0U;
|
|
||||||
|
|
||||||
/* Test Expectations */
|
|
||||||
vFakePortAssertIfISR_Expect();
|
|
||||||
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
|
||||||
vFakePortGetTaskLock_Expect();
|
|
||||||
vFakePortGetCoreID_ExpectAndReturn( 0 );
|
|
||||||
vFakePortGetISRLock_Expect();
|
|
||||||
vFakePortReleaseISRLock_Expect();
|
|
||||||
vFakePortClearInterruptMask_Expect( 0 );
|
|
||||||
|
|
||||||
/* API Call */
|
|
||||||
vTaskSuspendAll();
|
|
||||||
|
|
||||||
/* Test Verifications */
|
|
||||||
TEST_ASSERT_EQUAL( 1, uxSchedulerSuspended );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This test ensures that when we call prvGetExpectedIdleTime and the top
|
* @brief This test ensures that when we call prvGetExpectedIdleTime and the top
|
||||||
* ready priority is greater than the idle task, we return zero,
|
* ready priority is greater than the idle task, we return zero,
|
||||||
|
|
@ -840,12 +800,17 @@ void test_coverage_prvGetExpectedIdleTime_ready_list_eq_1( void )
|
||||||
|
|
||||||
/* vTaskSuspendAll */
|
/* vTaskSuspendAll */
|
||||||
vFakePortAssertIfISR_Expect();
|
vFakePortAssertIfISR_Expect();
|
||||||
|
vFakePortGetCoreID_ExpectAndReturn( 0 );
|
||||||
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
||||||
vFakePortGetTaskLock_Expect();
|
vFakePortGetTaskLock_Expect();
|
||||||
|
/* prvCheckForRunStateChange */
|
||||||
|
vFakePortAssertIfISR_Expect();
|
||||||
|
vFakePortGetCoreID_ExpectAndReturn( 0 );
|
||||||
|
/* End of prvCheckForRunStateChange */
|
||||||
vFakePortGetISRLock_Expect();
|
vFakePortGetISRLock_Expect();
|
||||||
vFakePortReleaseISRLock_Expect();
|
vFakePortReleaseISRLock_Expect();
|
||||||
vFakePortClearInterruptMask_Expect( 0 );
|
vFakePortClearInterruptMask_Expect( 0 );
|
||||||
|
/* End of vTaskSuspendAll */
|
||||||
|
|
||||||
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
||||||
vFakePortGetCoreID_ExpectAndReturn( 0 );
|
vFakePortGetCoreID_ExpectAndReturn( 0 );
|
||||||
|
|
@ -941,11 +906,16 @@ void test_coverage_prvGetExpectedIdleTime_ready_list_eq_2( void )
|
||||||
|
|
||||||
/* vTaskSuspendAll */
|
/* vTaskSuspendAll */
|
||||||
vFakePortAssertIfISR_Stub( port_assert_if_isr_cb );
|
vFakePortAssertIfISR_Stub( port_assert_if_isr_cb );
|
||||||
|
vFakePortGetCoreID_ExpectAndReturn( 0 );
|
||||||
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
||||||
vFakePortGetTaskLock_Expect();
|
vFakePortGetTaskLock_Expect();
|
||||||
|
/* prvCheckForRunStateChange */
|
||||||
|
vFakePortGetCoreID_ExpectAndReturn( 0 );
|
||||||
|
/* End of prvCheckForRunStateChange */
|
||||||
vFakePortGetISRLock_Expect();
|
vFakePortGetISRLock_Expect();
|
||||||
vFakePortReleaseISRLock_Expect();
|
vFakePortReleaseISRLock_Expect();
|
||||||
vFakePortClearInterruptMask_Expect( 0 );
|
vFakePortClearInterruptMask_Expect( 0 );
|
||||||
|
/* End of vTaskSuspendAll */
|
||||||
|
|
||||||
|
|
||||||
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
ulFakePortSetInterruptMask_ExpectAndReturn( 0 );
|
||||||
|
|
|
||||||
|
|
@ -4928,6 +4928,8 @@ void test_ulTaskGenericNotifyTake_success( void )
|
||||||
task_handle = create_task();
|
task_handle = create_task();
|
||||||
task_handle->ulNotifiedValue[ uxIndexToWait ] = 0;
|
task_handle->ulNotifiedValue[ uxIndexToWait ] = 0;
|
||||||
/* Expectations */
|
/* Expectations */
|
||||||
|
/* xTaskResumeAll */
|
||||||
|
listLIST_IS_EMPTY_ExpectAndReturn( &xPendingReadyList, pdTRUE );
|
||||||
/* API Call */
|
/* API Call */
|
||||||
ret_gen_notify_take = ulTaskGenericNotifyTake( uxIndexToWait,
|
ret_gen_notify_take = ulTaskGenericNotifyTake( uxIndexToWait,
|
||||||
pdFALSE,
|
pdFALSE,
|
||||||
|
|
@ -4948,6 +4950,8 @@ void test_ulTaskGenericNotifyTake_success2( void )
|
||||||
task_handle = create_task();
|
task_handle = create_task();
|
||||||
task_handle->ulNotifiedValue[ uxIndexToWait ] = 2;
|
task_handle->ulNotifiedValue[ uxIndexToWait ] = 2;
|
||||||
/* Expectations */
|
/* Expectations */
|
||||||
|
/* xTaskResumeAll */
|
||||||
|
listLIST_IS_EMPTY_ExpectAndReturn( &xPendingReadyList, pdTRUE );
|
||||||
/* API Call */
|
/* API Call */
|
||||||
ret_gen_notify_take = ulTaskGenericNotifyTake( uxIndexToWait,
|
ret_gen_notify_take = ulTaskGenericNotifyTake( uxIndexToWait,
|
||||||
pdFALSE,
|
pdFALSE,
|
||||||
|
|
@ -4968,6 +4972,8 @@ void test_ulTaskGenericNotifyTake_success_clear_count( void )
|
||||||
task_handle = create_task();
|
task_handle = create_task();
|
||||||
task_handle->ulNotifiedValue[ uxIndexToWait ] = 5;
|
task_handle->ulNotifiedValue[ uxIndexToWait ] = 5;
|
||||||
/* Expectations */
|
/* Expectations */
|
||||||
|
/* xTaskResumeAll */
|
||||||
|
listLIST_IS_EMPTY_ExpectAndReturn( &xPendingReadyList, pdTRUE );
|
||||||
/* API Call */
|
/* API Call */
|
||||||
ret_gen_notify_take = ulTaskGenericNotifyTake( uxIndexToWait,
|
ret_gen_notify_take = ulTaskGenericNotifyTake( uxIndexToWait,
|
||||||
pdTRUE,
|
pdTRUE,
|
||||||
|
|
@ -4993,7 +4999,8 @@ void test_ulTaskGenericNotifyTake_success_yield( void )
|
||||||
uxListRemove_ExpectAndReturn( &ptcb->xStateListItem, 1 );
|
uxListRemove_ExpectAndReturn( &ptcb->xStateListItem, 1 );
|
||||||
listSET_LIST_ITEM_VALUE_Expect( &ptcb->xStateListItem, xTickCount + 9 );
|
listSET_LIST_ITEM_VALUE_Expect( &ptcb->xStateListItem, xTickCount + 9 );
|
||||||
vListInsert_Expect( pxDelayedTaskList, &ptcb->xStateListItem );
|
vListInsert_Expect( pxDelayedTaskList, &ptcb->xStateListItem );
|
||||||
listLIST_IS_EMPTY_ExpectAnyArgsAndReturn( pdTRUE );
|
/* xTaskResumeAll */
|
||||||
|
listLIST_IS_EMPTY_ExpectAndReturn( &xPendingReadyList, pdTRUE );
|
||||||
/* API Call */
|
/* API Call */
|
||||||
ret_gen_notify_take = ulTaskGenericNotifyTake( uxIndexToWait,
|
ret_gen_notify_take = ulTaskGenericNotifyTake( uxIndexToWait,
|
||||||
pdFALSE,
|
pdFALSE,
|
||||||
|
|
@ -5607,16 +5614,21 @@ void test_xTaskGenericNotifyWait_success_notif_received( void )
|
||||||
|
|
||||||
TaskHandle_t task_handle;
|
TaskHandle_t task_handle;
|
||||||
|
|
||||||
|
/* Setup */
|
||||||
task_handle = create_task();
|
task_handle = create_task();
|
||||||
ptcb = task_handle;
|
ptcb = task_handle;
|
||||||
ptcb->ucNotifyState[ uxIndexToWait ] = 2; /* taskNOTIFICATION_RECEIVED */
|
ptcb->ucNotifyState[ uxIndexToWait ] = 2; /* taskNOTIFICATION_RECEIVED */
|
||||||
ptcb->ulNotifiedValue[ uxIndexToWait ] = 5;
|
ptcb->ulNotifiedValue[ uxIndexToWait ] = 5;
|
||||||
|
/* Expectations */
|
||||||
|
/* xTaskResumeAll */
|
||||||
|
listLIST_IS_EMPTY_ExpectAndReturn( &xPendingReadyList, pdTRUE );
|
||||||
|
/* API Call */
|
||||||
ret = xTaskGenericNotifyWait( uxIndexToWait,
|
ret = xTaskGenericNotifyWait( uxIndexToWait,
|
||||||
ulBitsToClearOnEntry,
|
ulBitsToClearOnEntry,
|
||||||
ulBitsToClearOnExit,
|
ulBitsToClearOnExit,
|
||||||
&pullNotificationValue,
|
&pullNotificationValue,
|
||||||
xTicksToWait );
|
xTicksToWait );
|
||||||
|
/* Validations */
|
||||||
TEST_ASSERT_EQUAL( pdTRUE, ret );
|
TEST_ASSERT_EQUAL( pdTRUE, ret );
|
||||||
TEST_ASSERT_EQUAL( 5, pullNotificationValue );
|
TEST_ASSERT_EQUAL( 5, pullNotificationValue );
|
||||||
ASSERT_PORT_YIELD_WITHIN_API_NOT_CALLED();
|
ASSERT_PORT_YIELD_WITHIN_API_NOT_CALLED();
|
||||||
|
|
@ -5667,12 +5679,14 @@ void test_xTaskGenericNotifyWait_success_notif_not_received_no_wait( void )
|
||||||
|
|
||||||
TaskHandle_t task_handle;
|
TaskHandle_t task_handle;
|
||||||
|
|
||||||
|
/* Setup */
|
||||||
task_handle = create_task();
|
task_handle = create_task();
|
||||||
ptcb = task_handle;
|
ptcb = task_handle;
|
||||||
ptcb->ucNotifyState[ uxIndexToWait ] = 1; /* taskWAITING_NOTIFICATION */
|
ptcb->ucNotifyState[ uxIndexToWait ] = 1; /* taskWAITING_NOTIFICATION */
|
||||||
ptcb->ulNotifiedValue[ uxIndexToWait ] = 5;
|
ptcb->ulNotifiedValue[ uxIndexToWait ] = 5;
|
||||||
/* Expectations */
|
/* Expectations */
|
||||||
|
/* xTaskResumeAll */
|
||||||
|
listLIST_IS_EMPTY_ExpectAndReturn( &xPendingReadyList, pdTRUE );
|
||||||
/* API Call */
|
/* API Call */
|
||||||
ret = xTaskGenericNotifyWait( uxIndexToWait,
|
ret = xTaskGenericNotifyWait( uxIndexToWait,
|
||||||
ulBitsToClearOnEntry,
|
ulBitsToClearOnEntry,
|
||||||
|
|
@ -5695,12 +5709,14 @@ void test_xTaskGenericNotifyWait_success_notif_not_received_pull_null( void )
|
||||||
|
|
||||||
TaskHandle_t task_handle;
|
TaskHandle_t task_handle;
|
||||||
|
|
||||||
|
/* Setup */
|
||||||
task_handle = create_task();
|
task_handle = create_task();
|
||||||
ptcb = task_handle;
|
ptcb = task_handle;
|
||||||
ptcb->ucNotifyState[ uxIndexToWait ] = 1; /* taskWAITING_NOTIFICATION */
|
ptcb->ucNotifyState[ uxIndexToWait ] = 1; /* taskWAITING_NOTIFICATION */
|
||||||
ptcb->ulNotifiedValue[ uxIndexToWait ] = 5;
|
ptcb->ulNotifiedValue[ uxIndexToWait ] = 5;
|
||||||
/* Expectations */
|
/* Expectations */
|
||||||
|
/* xTaskResumeAll */
|
||||||
|
listLIST_IS_EMPTY_ExpectAndReturn( &xPendingReadyList, pdTRUE );
|
||||||
/* API Call */
|
/* API Call */
|
||||||
ret = xTaskGenericNotifyWait( uxIndexToWait,
|
ret = xTaskGenericNotifyWait( uxIndexToWait,
|
||||||
ulBitsToClearOnEntry,
|
ulBitsToClearOnEntry,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue