summaryrefslogtreecommitdiff
path: root/FreeRTOS/Test/CMock/message_buffer/message_buffer/message_buffer_utest.c
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Test/CMock/message_buffer/message_buffer/message_buffer_utest.c')
-rw-r--r--FreeRTOS/Test/CMock/message_buffer/message_buffer/message_buffer_utest.c107
1 files changed, 107 insertions, 0 deletions
diff --git a/FreeRTOS/Test/CMock/message_buffer/message_buffer/message_buffer_utest.c b/FreeRTOS/Test/CMock/message_buffer/message_buffer/message_buffer_utest.c
index cc353503f..1b7166dc8 100644
--- a/FreeRTOS/Test/CMock/message_buffer/message_buffer/message_buffer_utest.c
+++ b/FreeRTOS/Test/CMock/message_buffer/message_buffer/message_buffer_utest.c
@@ -798,3 +798,110 @@ void test_xMessageBufferReceiveFromISR_success( void )
vStreamBufferDelete( xMessageBuffer );
}
+
+/**
+ * @brief validate xMessageBufferGetStaticBuffers with a null xMessageBuffer argument
+ * @details Test that xMessageBufferGetStaticBuffers asserts when a null MessageBufferHandle_t is given.
+ */
+void test_xMessageBufferGetStaticBuffers_null_xMessageBuffer( void )
+{
+ uint8_t * pucMessageBufferStorageAreaRet = NULL;
+ StaticMessageBuffer_t * pxStaticMessageBuffer = NULL;
+
+ EXPECT_ASSERT_BREAK( xMessageBufferGetStaticBuffers( NULL, &pucMessageBufferStorageAreaRet, &pxStaticMessageBuffer ) );
+
+ validate_and_clear_assertions();
+
+ /* Check that pucMessageBufferStorageAreaRet and pxStaticMessageBuffer have not been modified */
+ TEST_ASSERT_EQUAL( NULL, pucMessageBufferStorageAreaRet );
+ TEST_ASSERT_EQUAL( NULL, pxStaticMessageBuffer );
+}
+
+/**
+ * @brief validate xMessageBufferGetStaticBuffers with a null ppxStaticMessageBuffer argument
+ * @details Test that xMessageBufferGetStaticBuffers asserts when a null ppxStaticMessageBuffer is given.
+ */
+void test_xMessageBufferGetStaticBuffers_null_ppxStaticMessageBuffer( void )
+{
+ MessageBufferHandle_t xMessageBuffer = NULL;
+ StaticMessageBuffer_t messageBufferStruct;
+ uint8_t messageBufferArray[ TEST_MESSAGE_BUFFER_SIZE + 1 ] = { 0 };
+
+ uint8_t * pucMessageBufferStorageAreaRet = NULL;
+
+ xMessageBuffer = xMessageBufferCreateStatic( sizeof( messageBufferArray ), messageBufferArray, &messageBufferStruct );
+
+ EXPECT_ASSERT_BREAK( xMessageBufferGetStaticBuffers( xMessageBuffer, &pucMessageBufferStorageAreaRet, NULL ) );
+
+ validate_and_clear_assertions();
+
+ /* Check that pucMessageBufferStorageAreaRet has not been modified */
+ TEST_ASSERT_EQUAL( NULL, pucMessageBufferStorageAreaRet );
+
+ vMessageBufferDelete( xMessageBuffer );
+}
+
+/**
+ * @brief validate xMessageBufferGetStaticBuffers with a null ppucMessageBufferStorageArea argument
+ * @details Test that xMessageBufferGetStaticBuffers asserts when a null ppucMessageBufferStorageArea is given.
+ */
+void test_xMessageBufferGetStaticBuffers_null_ppucMessageBufferStorageArea( void )
+{
+ MessageBufferHandle_t xMessageBuffer = NULL;
+ StaticMessageBuffer_t messageBufferStruct;
+ uint8_t messageBufferArray[ TEST_MESSAGE_BUFFER_SIZE + 1 ] = { 0 };
+
+ StaticMessageBuffer_t * pxStaticMessageBuffer = NULL;
+
+ xMessageBuffer = xMessageBufferCreateStatic( sizeof( messageBufferArray ), messageBufferArray, &messageBufferStruct );
+
+ EXPECT_ASSERT_BREAK( xMessageBufferGetStaticBuffers( xMessageBuffer, NULL, &pxStaticMessageBuffer ) );
+
+ validate_and_clear_assertions();
+
+ /* Check that pxStaticMessageBuffer has not been modified */
+ TEST_ASSERT_EQUAL( NULL, pxStaticMessageBuffer );
+
+ vMessageBufferDelete( xMessageBuffer );
+}
+
+/**
+ * @brief validate xMessageBufferGetStaticBuffers on a statically created message buffer
+ * @details Test xMessageBufferGetStaticBuffers returns the buffers of a statically created message buffer
+ */
+void test_xMessageBufferGetStaticBuffers_static( void )
+{
+ MessageBufferHandle_t xMessageBuffer = NULL;
+ StaticMessageBuffer_t messageBufferStruct;
+ uint8_t messageBufferArray[ TEST_MESSAGE_BUFFER_SIZE + 1 ] = { 0 };
+
+ uint8_t * pucMessageBufferStorageAreaRet = NULL;
+ StaticMessageBuffer_t * pxStaticMessageBuffer = NULL;
+
+ xMessageBuffer = xMessageBufferCreateStatic( sizeof( messageBufferArray ), messageBufferArray, &messageBufferStruct );
+
+ TEST_ASSERT_EQUAL( pdTRUE, xMessageBufferGetStaticBuffers( xMessageBuffer, &pucMessageBufferStorageAreaRet, &pxStaticMessageBuffer ) );
+ TEST_ASSERT_EQUAL( messageBufferArray, pucMessageBufferStorageAreaRet );
+ TEST_ASSERT_EQUAL( &messageBufferStruct, pxStaticMessageBuffer );
+
+ vMessageBufferDelete( xMessageBuffer );
+}
+
+/**
+ * @brief validate xMessageBufferGetStaticBuffers on a dynamically created message buffer
+ * @details Test xMessageBufferGetStaticBuffers returns an error when called on a dynamically created message buffer
+ */
+void test_xMessageBufferGetStaticBuffers_dynamic( void )
+{
+ MessageBufferHandle_t xMessageBuffer = NULL;
+ uint8_t * pucMessageBufferStorageAreaRet = NULL;
+ StaticMessageBuffer_t * pxStaticMessageBuffer = NULL;
+
+ xMessageBuffer = xMessageBufferCreate( TEST_MESSAGE_BUFFER_SIZE );
+
+ TEST_ASSERT_EQUAL( pdFALSE, xMessageBufferGetStaticBuffers( xMessageBuffer, &pucMessageBufferStorageAreaRet, &pxStaticMessageBuffer ) );
+ TEST_ASSERT_EQUAL( NULL, pucMessageBufferStorageAreaRet );
+ TEST_ASSERT_EQUAL( NULL, pxStaticMessageBuffer );
+
+ vMessageBufferDelete( xMessageBuffer );
+}