test_freertos_task_delete.c 887 B

1234567891011121314151617181920212223242526
  1. #include <stdio.h>
  2. #include "freertos/FreeRTOS.h"
  3. #include "freertos/task.h"
  4. #include "freertos/semphr.h"
  5. #include "freertos/queue.h"
  6. #include "freertos/event_groups.h"
  7. #include "unity.h"
  8. static void task_delete_self(void *param)
  9. {
  10. printf("Task %p running on core %d. Deleting shortly...\n", xTaskGetCurrentTaskHandle(), xPortGetCoreID());
  11. vTaskDelay(5);
  12. vTaskDelete(NULL);
  13. }
  14. TEST_CASE("FreeRTOS Delete Tasks", "[freertos]")
  15. {
  16. uint32_t before_count = uxTaskGetNumberOfTasks();
  17. xTaskCreatePinnedToCore(task_delete_self, "tsk_self_a", 4096, NULL, configMAX_PRIORITIES - 1, NULL, 0);
  18. xTaskCreatePinnedToCore(task_delete_self, "tsk_self_a", 4096, NULL, configMAX_PRIORITIES - 1, NULL, 0);
  19. TEST_ASSERT_EQUAL(before_count + 2, uxTaskGetNumberOfTasks());
  20. vTaskDelay(200 / portTICK_PERIOD_MS);
  21. TEST_ASSERT_EQUAL(before_count, uxTaskGetNumberOfTasks());
  22. }