diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo/TCPEchoClient_SingleTasks.c b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo/TCPEchoClient_SingleTasks.c index 0f9dcc90828..a7ffaf45a46 100644 --- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo/TCPEchoClient_SingleTasks.c +++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_IPv6_Demo/IPv6_Multi_WinSim_demo/TCPEchoClient_SingleTasks.c @@ -273,7 +273,7 @@ } else { - rc = FreeRTOS_inet_pton( FREERTOS_AF_INET4, configECHO_SERVER_ADDR_STRING, ( void * ) xEchoServerAddress.sin_address.xIP_IPv6.ucBytes ); + rc = FreeRTOS_inet_pton( FREERTOS_AF_INET4, configECHO_SERVER_ADDR_STRING, ( void * ) &( xEchoServerAddress.sin_address.ulIP_IPv4 ) ); configASSERT( rc == pdPASS ); xFamily = FREERTOS_AF_INET4; } diff --git a/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c b/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c index 783ed3b2ed2..a4871375c50 100644 --- a/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c +++ b/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI/FreeRTOS_CLI.c @@ -201,6 +201,7 @@ BaseType_t FreeRTOS_CLIProcessCommand( const char * const pcCommandInput, /* The command was found, but the number of parameters with the command * was incorrect. */ strncpy( pcWriteBuffer, "Incorrect command parameter(s). Enter \"help\" to view a list of available commands.\r\n\r\n", xWriteBufferLen ); + pcWriteBuffer[ xWriteBufferLen - 1 ] = '\0'; pxCommand = NULL; } else if( pxCommand != NULL ) @@ -220,6 +221,7 @@ BaseType_t FreeRTOS_CLIProcessCommand( const char * const pcCommandInput, { /* pxCommand was NULL, the command was not found. */ strncpy( pcWriteBuffer, "Command not recognised. Enter 'help' to view a list of available commands.\r\n\r\n", xWriteBufferLen ); + pcWriteBuffer[ xWriteBufferLen - 1 ] = '\0'; xReturn = pdFALSE; } @@ -340,6 +342,7 @@ static BaseType_t prvHelpCommand( char * pcWriteBuffer, /* Return the next command help string, before moving the pointer on to * the next command in the list. */ strncpy( pcWriteBuffer, pxCommand->pxCommandLineDefinition->pcHelpString, xWriteBufferLen ); + pcWriteBuffer[ xWriteBufferLen - 1 ] = '\0'; pxCommand = pxCommand->pxNext; if( pxCommand == NULL ) diff --git a/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP b/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP index 1f1ffec6d74..af6b379e3a5 160000 --- a/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP +++ b/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP @@ -1 +1 @@ -Subproject commit 1f1ffec6d746be15cb9b54b1d2bfbc9446b8607b +Subproject commit af6b379e3a580b86ac99f493918c6d18ffcdf264 diff --git a/FreeRTOS/Source b/FreeRTOS/Source index fcc665325c0..78069a79ea8 160000 --- a/FreeRTOS/Source +++ b/FreeRTOS/Source @@ -1 +1 @@ -Subproject commit fcc665325c033065cb6fd89d18a92f2ca611495e +Subproject commit 78069a79ea8f9d17c0eae88c417fd41e2c54a2cd diff --git a/FreeRTOS/Test/CBMC/proofs/make_common_makefile.py b/FreeRTOS/Test/CBMC/proofs/make_common_makefile.py index f3908853774..8e23bcab7d5 100755 --- a/FreeRTOS/Test/CBMC/proofs/make_common_makefile.py +++ b/FreeRTOS/Test/CBMC/proofs/make_common_makefile.py @@ -30,7 +30,7 @@ import argparse def cleanup_whitespace(string): - return re.sub('\s+', ' ', string.strip()) + return re.sub(r'\s+', ' ', string.strip()) ################################################################ # Operating system specific values @@ -83,9 +83,9 @@ def patch_compile_output(opsys, line, key, value): if key in ["COMPILE_ONLY", "COMPILE_LINK"] and value is not None: if value[-1] == '/Fo': - return re.sub('/Fo\s+', '/Fo', line) + return re.sub(r'/Fo\s+', '/Fo', line) if value[-1] == '/Fe': - return re.sub('/Fe\s+', '/Fe', line) + return re.sub(r'/Fe\s+', '/Fe', line) return line ################################################################ @@ -181,7 +181,7 @@ def write_makefile(opsys, template, defines, makefile): with open(template) as _template: for line in _template: line = patch_path_separator(opsys, line) - keys = re.findall('@(\w+)@', line) + keys = re.findall(r'@(\w+)@', line) values = [find_definition(key, defines) for key in keys] for key, value in zip(keys, values): if value is not None: diff --git a/FreeRTOS/Test/CBMC/proofs/make_proof_makefiles.py b/FreeRTOS/Test/CBMC/proofs/make_proof_makefiles.py index 749852b1962..2d1289d9b2f 100755 --- a/FreeRTOS/Test/CBMC/proofs/make_proof_makefiles.py +++ b/FreeRTOS/Test/CBMC/proofs/make_proof_makefiles.py @@ -121,7 +121,7 @@ def prolog(): On Windows -> - H_INC = /Imy\cool\directory + H_INC = /Imy\\cool\\directory H_DEF = /DHALF=/2 When invoked, this script walks the directory tree looking for files diff --git a/FreeRTOS/Test/CMock/event_groups/event_groups.yml b/FreeRTOS/Test/CMock/event_groups/event_groups.yml index e149b08f25f..acccd6dfab1 100644 --- a/FreeRTOS/Test/CMock/event_groups/event_groups.yml +++ b/FreeRTOS/Test/CMock/event_groups/event_groups.yml @@ -29,4 +29,5 @@ :strippables: - PRIVILEGED_FUNCTION - portDONT_DISCARD + - '(?:BaseType_t\s+xTimerDelete\s*\([\s\w,\n\t]*\)[\s\w,\n\t]*\s*;\s*)' :treat_externs: :include diff --git a/FreeRTOS/Test/CMock/queue/generic/queue_delete_dynamic_utest.c b/FreeRTOS/Test/CMock/queue/generic/queue_delete_dynamic_utest.c index 8cbed72ff6f..f41fb4267ac 100644 --- a/FreeRTOS/Test/CMock/queue/generic/queue_delete_dynamic_utest.c +++ b/FreeRTOS/Test/CMock/queue/generic/queue_delete_dynamic_utest.c @@ -129,3 +129,74 @@ void test_vQueueDelete_full( void ) vQueueDelete( xQueue ); TEST_ASSERT_EQUAL_PTR( ( void * ) xQueue, getLastFreedAddress() ); } + +/** + * @brief Test vQueueDelete asserts when tasks are waiting to send and waiting to receive + * @details Verify that vQueueDelete triggers a configASSERT when both the + * xTasksWaitingToSend and xTasksWaitingToReceive lists are non-empty. + * @coverage vQueueDelete + */ +void test_vQueueDelete_assert_tasks_waiting_to_send_and_receive( void ) +{ + QueueHandle_t xQueue = xQueueCreate( 1, sizeof( uint32_t ) ); + + /* Add a fake task to the WaitingToSend list */ + td_task_addFakeTaskWaitingToSendToQueue( xQueue ); + + /* Expect the assert to fire due to non-empty WaitingToSend list */ + EXPECT_ASSERT_BREAK( vQueueDelete( xQueue ) ); + + /* Clean up the fake task from the list */ + td_task_removeFakeTaskFromList(); + + /* Now add a fake task to WaitingToReceive and verify that assert fires too */ + td_task_addFakeTaskWaitingToReceiveFromQueue( xQueue ); + + EXPECT_ASSERT_BREAK( vQueueDelete( xQueue ) ); + + /* Clean up and delete */ + td_task_removeFakeTaskFromList(); + vQueueDelete( xQueue ); +} + +/** + * @brief Test vQueueDelete asserts when tasks are waiting to send only + * @details Verify that vQueueDelete triggers a configASSERT when the + * xTasksWaitingToSend list is non-empty. + * @coverage vQueueDelete + */ +void test_vQueueDelete_assert_tasks_waiting_to_send( void ) +{ + QueueHandle_t xQueue = xQueueCreate( 1, sizeof( uint32_t ) ); + + /* Add a fake task to the WaitingToSend list */ + td_task_addFakeTaskWaitingToSendToQueue( xQueue ); + + /* Expect the assert to fire due to non-empty WaitingToSend list */ + EXPECT_ASSERT_BREAK( vQueueDelete( xQueue ) ); + + /* Clean up and delete */ + td_task_removeFakeTaskFromList(); + vQueueDelete( xQueue ); +} + +/** + * @brief Test vQueueDelete asserts when tasks are waiting to receive only + * @details Verify that vQueueDelete triggers a configASSERT when the + * xTasksWaitingToReceive list is non-empty. + * @coverage vQueueDelete + */ +void test_vQueueDelete_assert_tasks_waiting_to_receive( void ) +{ + QueueHandle_t xQueue = xQueueCreate( 1, sizeof( uint32_t ) ); + + /* Add a fake task to the WaitingToReceive list */ + td_task_addFakeTaskWaitingToReceiveFromQueue( xQueue ); + + /* Expect the assert to fire due to non-empty WaitingToReceive list */ + EXPECT_ASSERT_BREAK( vQueueDelete( xQueue ) ); + + /* Clean up and delete */ + td_task_removeFakeTaskFromList(); + vQueueDelete( xQueue ); +} diff --git a/FreeRTOS/Test/CMock/queue/queue_utest_common.h b/FreeRTOS/Test/CMock/queue/queue_utest_common.h index bed06e0cc69..73d3400b57f 100644 --- a/FreeRTOS/Test/CMock/queue/queue_utest_common.h +++ b/FreeRTOS/Test/CMock/queue/queue_utest_common.h @@ -326,6 +326,13 @@ void td_task_addFakeTaskWaitingToSendToQueue( QueueHandle_t xQueue ); */ void td_task_addFakeTaskWaitingToReceiveFromQueue( QueueHandle_t xQueue ); +/** + * @brief Remove the fake task from whatever waiting list it is currently in. + * @details This should be called before deleting a queue that has a fake task + * in one of its waiting lists (xTasksWaitingToSend or xTasksWaitingToReceive). + */ +void td_task_removeFakeTaskFromList( void ); + /** * @brief Test double for xTaskCheckForTimeOut */ diff --git a/FreeRTOS/Test/CMock/queue/semaphore/mutex_utest.c b/FreeRTOS/Test/CMock/queue/semaphore/mutex_utest.c index 89a9b02d2eb..2dccad98f9b 100644 --- a/FreeRTOS/Test/CMock/queue/semaphore/mutex_utest.c +++ b/FreeRTOS/Test/CMock/queue/semaphore/mutex_utest.c @@ -540,6 +540,9 @@ void test_macro_xSemaphoreTake_blocking_mutex_inherit_timeout_high_prio_waiting( TEST_ASSERT_EQUAL( TICKS_TO_WAIT + 1, td_task_getCount_YieldFromTaskResumeAll() ); + /* Remove the fake task from the waiting list before deleting the semaphore */ + td_task_removeFakeTaskFromList(); + vSemaphoreDelete( xSemaphore ); } diff --git a/FreeRTOS/Test/CMock/queue/td_task.c b/FreeRTOS/Test/CMock/queue/td_task.c index eff0cdc601c..50bab55419d 100644 --- a/FreeRTOS/Test/CMock/queue/td_task.c +++ b/FreeRTOS/Test/CMock/queue/td_task.c @@ -290,6 +290,14 @@ void td_task_addFakeTaskWaitingToReceiveFromQueue( QueueHandle_t xQueue ) vListInsert( pxTasksWaitingToReceive, &fakeTaskListItem ); } +void td_task_removeFakeTaskFromList( void ) +{ + if( listLIST_ITEM_CONTAINER( &fakeTaskListItem ) != NULL ) + { + uxListRemove( &fakeTaskListItem ); + } +} + TickType_t td_task_getFakeTaskPriority( void ) { return( configMAX_PRIORITIES - fakeTaskListItem.xItemValue ); diff --git a/FreeRTOS/Test/CMock/smp/smp.yml b/FreeRTOS/Test/CMock/smp/smp.yml index d766527c509..f457f8ff424 100644 --- a/FreeRTOS/Test/CMock/smp/smp.yml +++ b/FreeRTOS/Test/CMock/smp/smp.yml @@ -29,4 +29,4 @@ :strippables: - PRIVILEGED_FUNCTION - portDONT_DISCARD - + - '(?:BaseType_t\s+xTimerDelete\s*\([\s\w,\n\t]*\)[\s\w,\n\t]*\s*;\s*)' diff --git a/FreeRTOS/Test/Target/README.md b/FreeRTOS/Test/Target/README.md new file mode 100644 index 00000000000..42514c59abb --- /dev/null +++ b/FreeRTOS/Test/Target/README.md @@ -0,0 +1,78 @@ +# Test framework + +Every test file is written against a small set of `test*` macros instead of +calling Unity APIs directly. This lets each target choose its own test +framework without changing any test source file: + +| Macro | Default (Unity) | Purpose | +| --- | --- | --- | +| `testSETUP_FUNCTION_PROTOTYPE( fxn )` | `void fxn( void )` | Declares the `setUp` function run before each test case. | +| `testTEARDOWN_FUNCTION_PROTOTYPE( fxn )` | `void fxn( void )` | Declares the `tearDown` function run after each test case. | +| `testENTRY_FUNCTION_PROTOTYPE( fxn )` | `void fxn( void )` | Declares the function a test runner task calls to run the test. | +| `testBEGIN_FUNCTION()` | `UNITY_BEGIN()` | Called at the start of the entry function. | +| `testRUN_TEST_CASE_FUNCTION( fxn )` | `RUN_TEST( fxn )` | Runs a single test case. | +| `testEND_FUNCTION()` | `UNITY_END()` | Called at the end of the entry function. | + +These macros are defined in `tests/include/test_default_setting_config.h`, +which every test file includes (see `tests/smp/template/test_name.c` for the +required include order). If a macro is already defined - for example by a +target-specific `test_setting_config.h` - the default in +`test_default_setting_config.h` is skipped, so targets only need to override +the macros that differ from the Unity-based default. + +If a target needs a test framework other than Unity, or otherwise needs to +override any of the macros above: + +1. Create a `test_setting_config.h` header for the target with `#define`s for + the macros that need to be overridden. Define `testNOT_USING_UNITY` in it + if the target does not use Unity at all, since `test_default_setting_config.h` + otherwise includes `unity.h` unconditionally. +1. Set `configTARGET_TEST_USE_CUSTOM_SETTING` to `1` in the target's + `FreeRTOSConfig.h` so that the test files pick up `test_setting_config.h`. + +# How to add a new test? + +1. Create a directory in the `tests` directory which will contain the test. + For example: `tests/smp/multiple_tasks_running`. +1. Copy the `test_name.c` and `test_config.h` files from `tests/smp/template` + to the newly created directory above. +1. Rename the `test_name.c` according to the test name. +1. Implement the test in the above test file, using the `test*` macros + described above (`testSETUP_FUNCTION_PROTOTYPE`, `testTEARDOWN_FUNCTION_PROTOTYPE`, + `testENTRY_FUNCTION_PROTOTYPE`, `testBEGIN_FUNCTION`, + `testRUN_TEST_CASE_FUNCTION`, `testEND_FUNCTION`) instead of calling Unity + APIs directly, so the test can run under any target's test framework. +1. Add any FreeRTOS specific configuration required for the test to `test_config.h`. + +# How to add a new target? + +1. Create a target specific directory in the `boards` directory. +1. Create required build files. + - Include `test_config.h` in `FreeRTOSConfig.h` at the end. + - Ensure that the following configurations are not defined in `FreeRTOSConfig.h` as those are defined in `test_config.h`: + - `configRUN_MULTIPLE_PRIORITIES` + - `configUSE_CORE_AFFINITY` + - `configUSE_MINIMAL_IDLE_HOOK` + - `configUSE_TASK_PREEMPTION_DISABLE` + - `configUSE_TIME_SLICING` + - `configUSE_PREEMPTION` + - If the target uses the default Unity-based test framework, no further + action is required. If it needs to customize the test framework, add a + `test_setting_config.h` and set `configTARGET_TEST_USE_CUSTOM_SETTING` + to `1`, as described in [Test framework](#test-framework) above. + +# How to add a test to a target + +1. Create a directory in the target's directory which will contain + the test. For example: `boards/pico/tests/smp/multiple_tasks_running`. +1. Create a C file and invoke the test case from a task. The invocation + usually looks like the following: + ```c + void prvTestRunnerTask( void * pvParameters ) + { + /* Invoke the test case. */ + vRunTestCaseName(); + } + ``` +1. Add the file created above and the test case file to the build system used + for the target. diff --git a/FreeRTOS/Test/Target/tests/include/test_default_setting_config.h b/FreeRTOS/Test/Target/tests/include/test_default_setting_config.h new file mode 100644 index 00000000000..9c43dd92048 --- /dev/null +++ b/FreeRTOS/Test/Target/tests/include/test_default_setting_config.h @@ -0,0 +1,58 @@ +/* + * FreeRTOS V202212.00 + * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * https://www.FreeRTOS.org + * https://github.com/FreeRTOS + * + */ + +#ifndef TEST_DEFAULT_SETTING_CONFIG_H +#define TEST_DEFAULT_SETTING_CONFIG_H + +#ifndef testNOT_USING_UNITY + #include "unity.h" +#endif + +#ifndef testRUN_TEST_CASE_FUNCTION + #define testRUN_TEST_CASE_FUNCTION RUN_TEST +#endif + +#ifndef testBEGIN_FUNCTION + #define testBEGIN_FUNCTION UNITY_BEGIN +#endif + +#ifndef testEND_FUNCTION + #define testEND_FUNCTION UNITY_END +#endif + +#ifndef testSETUP_FUNCTION_PROTOTYPE + #define testSETUP_FUNCTION_PROTOTYPE( fxn ) void fxn( void ) +#endif + +#ifndef testTEARDOWN_FUNCTION_PROTOTYPE + #define testTEARDOWN_FUNCTION_PROTOTYPE( fxn ) void fxn( void ) +#endif + +#ifndef testENTRY_FUNCTION_PROTOTYPE + #define testENTRY_FUNCTION_PROTOTYPE( fxn ) void fxn( void ) +#endif + +#endif /* TEST_DEFAULT_SETTING_CONFIG_H */ diff --git a/FreeRTOS/Test/Target/tests/smp/disable_multiple_priorities/disable_multiple_priorities.c b/FreeRTOS/Test/Target/tests/smp/disable_multiple_priorities/disable_multiple_priorities.c index 53764bb2780..fdf0bdbf2da 100644 --- a/FreeRTOS/Test/Target/tests/smp/disable_multiple_priorities/disable_multiple_priorities.c +++ b/FreeRTOS/Test/Target/tests/smp/disable_multiple_priorities/disable_multiple_priorities.c @@ -49,8 +49,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ /** @@ -200,7 +207,7 @@ void Test_DisableMultiplePriorities( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; @@ -214,7 +221,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -233,12 +240,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to run disable multiple priorities test. */ -void vRunDisableMultiplePrioritiesTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunDisableMultiplePrioritiesTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_DisableMultiplePriorities ); + testRUN_TEST_CASE_FUNCTION( Test_DisableMultiplePriorities ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/disable_preemption/disable_preemption.c b/FreeRTOS/Test/Target/tests/smp/disable_preemption/disable_preemption.c index 9587cb13ae9..77438769787 100644 --- a/FreeRTOS/Test/Target/tests/smp/disable_preemption/disable_preemption.c +++ b/FreeRTOS/Test/Target/tests/smp/disable_preemption/disable_preemption.c @@ -48,8 +48,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ /** @@ -207,7 +214,7 @@ void Test_DisablePreemption( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; @@ -220,7 +227,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -239,12 +246,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to run disable preemption test. */ -void vRunDisablePreemptionTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunDisablePreemptionTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_DisablePreemption ); + testRUN_TEST_CASE_FUNCTION( Test_DisablePreemption ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/interrupt_wait_critical/interrupt_wait_critical.c b/FreeRTOS/Test/Target/tests/smp/interrupt_wait_critical/interrupt_wait_critical.c index fd0485c57b2..eb198e2ce08 100644 --- a/FreeRTOS/Test/Target/tests/smp/interrupt_wait_critical/interrupt_wait_critical.c +++ b/FreeRTOS/Test/Target/tests/smp/interrupt_wait_critical/interrupt_wait_critical.c @@ -54,8 +54,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ /** @@ -296,7 +303,7 @@ void Test_InterruptWaitCritical( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; @@ -311,7 +318,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -330,12 +337,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to run interrupt task wait critical section test. */ -void vRunInterruptWaitCriticalTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunInterruptWaitCriticalTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_InterruptWaitCritical ); + testRUN_TEST_CASE_FUNCTION( Test_InterruptWaitCritical ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/multiple_tasks_running/multiple_tasks_running.c b/FreeRTOS/Test/Target/tests/smp/multiple_tasks_running/multiple_tasks_running.c index c1a4de96fab..ba4721abc6f 100644 --- a/FreeRTOS/Test/Target/tests/smp/multiple_tasks_running/multiple_tasks_running.c +++ b/FreeRTOS/Test/Target/tests/smp/multiple_tasks_running/multiple_tasks_running.c @@ -39,14 +39,17 @@ #include "FreeRTOS.h" /* Must come first. */ #include "task.h" /* RTOS task related API prototypes. */ -/* Unity includes. */ -#include "unity.h" -/*-----------------------------------------------------------*/ - #ifndef TEST_CONFIG_H #error test_config.h must be included at the end of FreeRTOSConfig.h. #endif +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" +/*-----------------------------------------------------------*/ + #if ( configNUMBER_OF_CORES < 2 ) #error This test is for FreeRTOS SMP and therefore, requires at least 2 cores. #endif /* if configNUMBER_OF_CORES != 2 */ @@ -109,7 +112,7 @@ static void prvEverRunningTask( void * pvParameters ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { int i; BaseType_t xTaskCreationResult; @@ -130,7 +133,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { int i; @@ -145,12 +148,12 @@ void tearDown( void ) } /*-----------------------------------------------------------*/ -void vRunMultipleTasksRunningTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunMultipleTasksRunningTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_MultipleTasksRunning ); + testRUN_TEST_CASE_FUNCTION( Test_MultipleTasksRunning ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/only_one_task_enter_critical/only_one_task_enter_critical.c b/FreeRTOS/Test/Target/tests/smp/only_one_task_enter_critical/only_one_task_enter_critical.c index f789312aefd..e2bd93c2d34 100644 --- a/FreeRTOS/Test/Target/tests/smp/only_one_task_enter_critical/only_one_task_enter_critical.c +++ b/FreeRTOS/Test/Target/tests/smp/only_one_task_enter_critical/only_one_task_enter_critical.c @@ -43,8 +43,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ /** @@ -197,7 +204,7 @@ void Test_OnlyOneTaskEnterCritical( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; @@ -214,7 +221,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -233,12 +240,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to run critical section test. */ -void vRunOnlyOneTaskEnterCriticalTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunOnlyOneTaskEnterCriticalTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_OnlyOneTaskEnterCritical ); + testRUN_TEST_CASE_FUNCTION( Test_OnlyOneTaskEnterCritical ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/only_one_task_enter_suspendall/only_one_task_enter_suspendall.c b/FreeRTOS/Test/Target/tests/smp/only_one_task_enter_suspendall/only_one_task_enter_suspendall.c index 2ecd971332d..4e89c93ea94 100644 --- a/FreeRTOS/Test/Target/tests/smp/only_one_task_enter_suspendall/only_one_task_enter_suspendall.c +++ b/FreeRTOS/Test/Target/tests/smp/only_one_task_enter_suspendall/only_one_task_enter_suspendall.c @@ -44,8 +44,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ /** @@ -204,7 +211,7 @@ void Test_OnlyOneTaskEnterSuspendAll( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; @@ -219,7 +226,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -239,12 +246,12 @@ void tearDown( void ) * @brief Entry point for test runner to run "only one task enter suspend all" * test. */ -void vRunOnlyOneTaskEnterSuspendAll( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunOnlyOneTaskEnterSuspendAll ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_OnlyOneTaskEnterSuspendAll ); + testRUN_TEST_CASE_FUNCTION( Test_OnlyOneTaskEnterSuspendAll ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/schedule_affinity/schedule_affinity.c b/FreeRTOS/Test/Target/tests/smp/schedule_affinity/schedule_affinity.c index 8de01c59673..9f694b198d6 100644 --- a/FreeRTOS/Test/Target/tests/smp/schedule_affinity/schedule_affinity.c +++ b/FreeRTOS/Test/Target/tests/smp/schedule_affinity/schedule_affinity.c @@ -48,8 +48,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ /** @@ -185,7 +192,7 @@ void Test_ScheduleAffinity( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; @@ -201,7 +208,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -220,12 +227,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to run schedule affinity test. */ -void vRunScheduleAffinityTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunScheduleAffinityTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_ScheduleAffinity ); + testRUN_TEST_CASE_FUNCTION( Test_ScheduleAffinity ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/schedule_equal_priority/schedule_equal_priority.c b/FreeRTOS/Test/Target/tests/smp/schedule_equal_priority/schedule_equal_priority.c index 785950b7a1a..0f4c96d6d9e 100644 --- a/FreeRTOS/Test/Target/tests/smp/schedule_equal_priority/schedule_equal_priority.c +++ b/FreeRTOS/Test/Target/tests/smp/schedule_equal_priority/schedule_equal_priority.c @@ -43,8 +43,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ /** @@ -146,7 +153,7 @@ void Test_ScheduleEqualPriority( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; @@ -159,7 +166,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -178,12 +185,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to run schedule equal priority test. */ -void vRunScheduleEqualPriorityTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunScheduleEqualPriorityTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_ScheduleEqualPriority ); + testRUN_TEST_CASE_FUNCTION( Test_ScheduleEqualPriority ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/schedule_highest_priority/schedule_highest_priority.c b/FreeRTOS/Test/Target/tests/smp/schedule_highest_priority/schedule_highest_priority.c index e34d7456a02..33d7e8add2c 100644 --- a/FreeRTOS/Test/Target/tests/smp/schedule_highest_priority/schedule_highest_priority.c +++ b/FreeRTOS/Test/Target/tests/smp/schedule_highest_priority/schedule_highest_priority.c @@ -46,8 +46,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ #if ( configNUMBER_OF_CORES < 2 ) @@ -163,7 +170,7 @@ void Test_ScheduleHighestPriority( void ) /** * @brief Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; BaseType_t xTaskCreationResult; @@ -191,7 +198,7 @@ void setUp( void ) /** * @brief Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -209,12 +216,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to run highest priority test. */ -void vRunScheduleHighestPriorityTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunScheduleHighestPriorityTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_ScheduleHighestPriority ); + testRUN_TEST_CASE_FUNCTION( Test_ScheduleHighestPriority ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/suspend_scheduler/suspend_scheduler.c b/FreeRTOS/Test/Target/tests/smp/suspend_scheduler/suspend_scheduler.c index 7ce6a11eaa2..214e7b4429c 100644 --- a/FreeRTOS/Test/Target/tests/smp/suspend_scheduler/suspend_scheduler.c +++ b/FreeRTOS/Test/Target/tests/smp/suspend_scheduler/suspend_scheduler.c @@ -48,8 +48,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ @@ -214,7 +221,7 @@ void Test_SuspendScheduler( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { uint32_t i; @@ -228,7 +235,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -247,12 +254,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to run suspend scheduler test. */ -void vRunSuspendSchedulerTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunSuspendSchedulerTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_SuspendScheduler ); + testRUN_TEST_CASE_FUNCTION( Test_SuspendScheduler ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/task_delete/task_delete.c b/FreeRTOS/Test/Target/tests/smp/task_delete/task_delete.c index a7cf587d58e..2f2b150966b 100644 --- a/FreeRTOS/Test/Target/tests/smp/task_delete/task_delete.c +++ b/FreeRTOS/Test/Target/tests/smp/task_delete/task_delete.c @@ -48,8 +48,15 @@ #include "FreeRTOS.h" #include "task.h" -/* Unit testing support functions. */ -#include "unity.h" +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ @@ -223,7 +230,7 @@ void Test_TaskDelete( void ) /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { /* Get the heap size before creating tasks. */ ulOriginalFreeHeapSize = xPortGetFreeHeapSize(); @@ -231,7 +238,7 @@ void setUp( void ) /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { uint32_t i; @@ -249,12 +256,12 @@ void tearDown( void ) /** * @brief Entry point for test runner to task delete test. */ -void vRunTaskDeleteTest( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunTaskDeleteTest ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_TaskDelete ); + testRUN_TEST_CASE_FUNCTION( Test_TaskDelete ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/FreeRTOS/Test/Target/tests/smp/template/README.md b/FreeRTOS/Test/Target/tests/smp/template/README.md deleted file mode 100644 index 8124f5c01a5..00000000000 --- a/FreeRTOS/Test/Target/tests/smp/template/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# How to add a new test? - -1. Create a directory in the `FreeRTOS/Test/Target/tests` directory which will - contain the test. For example: `FreeRTOS/Test/Target/tests/smp/multiple_tasks_running`. -1. Copy the `test_name.c` and `test_config.h` files from this template - directory to the newly created directory above. -1. Rename the `test_name.c` according to the test name. -1. Implement the test in the above test file. -1. Add any FreeRTOS specific configuration required for the test to `test_config.h`. - -# How to add a new target? - -1. Create a target specific directory in the `FreeRTOS/Test/Target/boards` directory. -1. Create required build files. - - Include `test_config.h` in `FreeRTOSConfig.h` at the end. - - Ensure that the following configurations are not defined in `FreeRTOSConfig.h` as those are defined in `test_config.h`: - - `configRUN_MULTIPLE_PRIORITIES` - - `configUSE_CORE_AFFINITY` - - `configUSE_TASK_PREEMPTION_DISABLE` - - `configUSE_TIME_SLICING` - - `configUSE_PREEMPTION` - -# How to add a test to a target - -1. Create a directory in the target's directory which will contain - the test. For example: `FreeRTOS/Test/Target/boards/pico/tests/smp/multiple_tasks_running`. -1. Create a C file and invoke the test case from a task. The invocation - usually looks like the following: - ```c - void prvTestRunnerTask( void * pvParameters ) - { - /* Invoke the test case. */ - vRunTestCaseName(); - } - ``` -1. Add the file created above and the test case file to the build system used - for the target. diff --git a/FreeRTOS/Test/Target/tests/smp/template/test_config.h b/FreeRTOS/Test/Target/tests/smp/template/test_config.h index 59f4e62aa7e..0a029c1d558 100644 --- a/FreeRTOS/Test/Target/tests/smp/template/test_config.h +++ b/FreeRTOS/Test/Target/tests/smp/template/test_config.h @@ -38,6 +38,10 @@ #undef configUSE_CORE_AFFINITY #endif /* ifdef configUSE_CORE_AFFINITY */ +#ifdef configUSE_MINIMAL_IDLE_HOOK + #undef configUSE_MINIMAL_IDLE_HOOK +#endif /* ifdef configUSE_MINIMAL_IDLE_HOOK */ + #ifdef configUSE_TASK_PREEMPTION_DISABLE #undef configUSE_TASK_PREEMPTION_DISABLE #endif /* ifdef configUSE_TASK_PREEMPTION_DISABLE */ diff --git a/FreeRTOS/Test/Target/tests/smp/template/test_name.c b/FreeRTOS/Test/Target/tests/smp/template/test_name.c index 7a18c3df886..f817abef663 100644 --- a/FreeRTOS/Test/Target/tests/smp/template/test_name.c +++ b/FreeRTOS/Test/Target/tests/smp/template/test_name.c @@ -35,8 +35,23 @@ #include "FreeRTOS.h" #include "task.h" -/* Unity testing includes. */ -#include "unity.h" +/*-----------------------------------------------------------*/ + +#ifndef TEST_CONFIG_H + #error test_config.h must be included at the end of FreeRTOSConfig.h. +#endif + +/* Include test_setting_config.h here if the target needs to override any of + * the test framework macros defined in test_default_setting_config.h, e.g. + * to use a test framework other than Unity. Set configTARGET_TEST_USE_CUSTOM_SETTING + * to 1 in the target's FreeRTOSConfig.h to enable this. */ +#if ( configTARGET_TEST_USE_CUSTOM_SETTING == 1 ) + #include "test_setting_config.h" +#endif + +/* Fills in the default test framework macros, e.g. testBEGIN_FUNCTION, for + * any that were not overridden above. */ +#include "test_default_setting_config.h" /*-----------------------------------------------------------*/ @@ -44,10 +59,6 @@ #error This test is for FreeRTOS SMP and therefore, requires at least 2 cores. #endif -#ifndef TEST_CONFIG_H - #error test_config.h must be included at the end of FreeRTOSConfig.h. -#endif - /*-----------------------------------------------------------*/ /* Declare #defines used in this file here. */ @@ -63,14 +74,14 @@ /*-----------------------------------------------------------*/ /* Runs before every test, put init calls here. */ -void setUp( void ) +testSETUP_FUNCTION_PROTOTYPE( setUp ) { /* Create FreeRTOS resources required for the test. */ } /*-----------------------------------------------------------*/ /* Runs after every test, put clean-up calls here. */ -void tearDown( void ) +testTEARDOWN_FUNCTION_PROTOTYPE( tearDown ) { /* Delete all the FreeRTOS resources created in setUp. */ } @@ -86,12 +97,12 @@ void Test_TestCaseName( void ) /* Function that runs the test case. This function must be called * from a FreeRTOS task. */ -void vRunTestCaseName( void ) +testENTRY_FUNCTION_PROTOTYPE( vRunTestCaseName ) { - UNITY_BEGIN(); + testBEGIN_FUNCTION(); - RUN_TEST( Test_TestCaseName ); + testRUN_TEST_CASE_FUNCTION( Test_TestCaseName ); - UNITY_END(); + testEND_FUNCTION(); } /*-----------------------------------------------------------*/ diff --git a/manifest.yml b/manifest.yml index 4062621520a..fe54fb62125 100644 --- a/manifest.yml +++ b/manifest.yml @@ -5,14 +5,14 @@ license: "MIT" dependencies: - name: "FreeRTOS-Kernel" - version: "fcc6653" + version: "78069a7" repository: type: "git" url: "https://github.com/FreeRTOS/FreeRTOS-Kernel.git" path: "FreeRTOS/Source" - name: "FreeRTOS-Plus-TCP" - version: "1f1ffec" + version: "af6b379" repository: type: "git" url: "https://github.com/FreeRTOS/FreeRTOS-Plus-TCP.git"