static void task_delete_self(void *param)
{
printf("Task %p running on core %d. Deleting shortly...\n", xTaskGetCurrentTaskHandle(), xPortGetCoreID());
+ vTaskDelay(5);
vTaskDelete(NULL);
}
-TEST_CASE("FreeRTOS Delete Tasks", "[freertos][ignore]")
+TEST_CASE("FreeRTOS Delete Tasks", "[freertos]")
{
+ uint32_t before_count = uxTaskGetNumberOfTasks();
+
xTaskCreatePinnedToCore(task_delete_self, "tsk_self_a", 4096, NULL, configMAX_PRIORITIES - 1, NULL, 0);
xTaskCreatePinnedToCore(task_delete_self, "tsk_self_a", 4096, NULL, configMAX_PRIORITIES - 1, NULL, 0);
+ TEST_ASSERT_EQUAL(before_count + 2, uxTaskGetNumberOfTasks());
vTaskDelay(200 / portTICK_PERIOD_MS);
- printf("Done?\n");
+ TEST_ASSERT_EQUAL(before_count, uxTaskGetNumberOfTasks());
}