summaryrefslogtreecommitdiff
path: root/FreeRTOS/Demo/ThirdParty/Template/TestRunner.c
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Demo/ThirdParty/Template/TestRunner.c')
-rw-r--r--FreeRTOS/Demo/ThirdParty/Template/TestRunner.c589
1 files changed, 0 insertions, 589 deletions
diff --git a/FreeRTOS/Demo/ThirdParty/Template/TestRunner.c b/FreeRTOS/Demo/ThirdParty/Template/TestRunner.c
deleted file mode 100644
index c94ffbbb2..000000000
--- a/FreeRTOS/Demo/ThirdParty/Template/TestRunner.c
+++ /dev/null
@@ -1,589 +0,0 @@
-/*
- * FreeRTOS V202104.00
- * Copyright (C) 2017 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.
- *
- * http://www.FreeRTOS.org
- * http://aws.amazon.com/freertos
- *
- * 1 tab == 4 spaces!
- */
-
-/* Standard includes. */
-#include <stdio.h>
-#include <stdlib.h>
-
-/* Kernel includes. */
-#include "FreeRTOS.h"
-#include "task.h"
-#include "queue.h"
-#include "timers.h"
-#include "semphr.h"
-
-/* Various test includes. */
-#include "BlockQ.h"
-#include "integer.h"
-#include "semtest.h"
-#include "PollQ.h"
-#include "GenQTest.h"
-#include "QPeek.h"
-#include "recmutex.h"
-#include "flop.h"
-#include "TimerDemo.h"
-#include "countsem.h"
-#include "death.h"
-#include "QueueSet.h"
-#include "QueueOverwrite.h"
-#include "EventGroupsDemo.h"
-#include "IntSemTest.h"
-#include "IntQueue.h"
-#include "TaskNotify.h"
-#include "TaskNotifyArray.h"
-#include "QueueSetPolling.h"
-#include "StaticAllocation.h"
-#include "blocktim.h"
-#include "AbortDelay.h"
-#include "MessageBufferDemo.h"
-#include "StreamBufferDemo.h"
-#include "StreamBufferInterrupt.h"
-#include "RegTests.h"
-
-/**
- * Priorities at which the tasks are created.
- */
-#define testrunnerCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
-#define testrunnerQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 )
-#define testrunnerSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
-#define testrunnerBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )
-#define testrunnerCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
-#define testrunnerFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
-#define testrunnerINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY )
-#define testrunnerGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY )
-#define testrunnerFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )
-#define testrunnerQUEUE_OVERWRITE_PRIORITY ( tskIDLE_PRIORITY )
-#define testrunnerREGISTER_TEST_PRIORITY ( tskIDLE_PRIORITY )
-
-/**
- * Period used in timer tests.
- */
-#define testrunnerTIMER_TEST_PERIOD ( 50 )
-/*-----------------------------------------------------------*/
-
-/**
- * The variable into which error messages are latched.
- */
-static char *pcStatusMessage = "No errors";
-/*-----------------------------------------------------------*/
-
-/**
- * The task that periodically checks that all the standard demo tasks are
- * still executing and error free.
- */
-static void prvCheckTask( void *pvParameters );
-/*-----------------------------------------------------------*/
-
-void vStartTests( void )
-{
- BaseType_t xResult;
-
- xResult = xTaskCreate( prvCheckTask,
- "Check",
- configMINIMAL_STACK_SIZE,
- NULL,
- testrunnerCHECK_TASK_PRIORITY,
- NULL );
-
- if( xResult == pdPASS )
- {
- #if( configSTART_TASK_NOTIFY_TESTS == 1 )
- {
- vStartTaskNotifyTask();
- }
- #endif /* configSTART_TASK_NOTIFY_TESTS */
-
- #if( configSTART_TASK_NOTIFY_ARRAY_TESTS == 1 )
- {
- vStartTaskNotifyArrayTask();
- }
- #endif /* configSTART_TASK_NOTIFY_ARRAY_TESTS */
-
- #if( configSTART_BLOCKING_QUEUE_TESTS == 1 )
- {
- vStartBlockingQueueTasks( testrunnerBLOCK_Q_PRIORITY );
- }
- #endif /* configSTART_BLOCKING_QUEUE_TESTS */
-
- #if( configSTART_SEMAPHORE_TESTS == 1 )
- {
- vStartSemaphoreTasks( testrunnerSEM_TEST_PRIORITY );
- }
- #endif /* configSTART_SEMAPHORE_TESTS */
-
- #if( configSTART_POLLED_QUEUE_TESTS == 1 )
- {
- vStartPolledQueueTasks( testrunnerQUEUE_POLL_PRIORITY );
- }
- #endif /* configSTART_POLLED_QUEUE_TESTS */
-
- #if( configSTART_INTEGER_MATH_TESTS == 1 )
- {
- vStartIntegerMathTasks( testrunnerINTEGER_TASK_PRIORITY );
- }
- #endif /* configSTART_INTEGER_MATH_TESTS */
-
- #if( configSTART_GENERIC_QUEUE_TESTS == 1 )
- {
- vStartGenericQueueTasks( testrunnerGEN_QUEUE_TASK_PRIORITY );
- }
- #endif /* configSTART_GENERIC_QUEUE_TESTS */
-
- #if( configSTART_PEEK_QUEUE_TESTS == 1 )
- {
- vStartQueuePeekTasks();
- }
- #endif /* configSTART_PEEK_QUEUE_TESTS */
-
- #if( configSTART_MATH_TESTS == 1 )
- {
- vStartMathTasks( testrunnerFLOP_TASK_PRIORITY );
- }
- #endif /* configSTART_MATH_TESTS */
-
- #if( configSTART_RECURSIVE_MUTEX_TESTS == 1 )
- {
- vStartRecursiveMutexTasks();
- }
- #endif /* configSTART_RECURSIVE_MUTEX_TESTS */
-
- #if( configSTART_COUNTING_SEMAPHORE_TESTS == 1 )
- {
- vStartCountingSemaphoreTasks();
- }
- #endif /* configSTART_COUNTING_SEMAPHORE_TESTS */
-
- #if( configSTART_QUEUE_SET_TESTS == 1 )
- {
- vStartQueueSetTasks();
- }
- #endif /* configSTART_QUEUE_SET_TESTS */
-
- #if( configSTART_QUEUE_OVERWRITE_TESTS == 1 )
- {
- vStartQueueOverwriteTask( testrunnerQUEUE_OVERWRITE_PRIORITY );
- }
- #endif /* configSTART_QUEUE_OVERWRITE_TESTS */
-
- #if( configSTART_EVENT_GROUP_TESTS == 1 )
- {
- vStartEventGroupTasks();
- }
- #endif /* configSTART_EVENT_GROUP_TESTS */
-
- #if( configSTART_INTERRUPT_SEMAPHORE_TESTS == 1 )
- {
- vStartInterruptSemaphoreTasks();
- }
- #endif /* configSTART_INTERRUPT_SEMAPHORE_TESTS */
-
- #if( configSTART_QUEUE_SET_POLLING_TESTS == 1 )
- {
- vStartQueueSetPollingTask();
- }
- #endif /* configSTART_QUEUE_SET_POLLING_TESTS */
-
- #if( configSTART_BLOCK_TIME_TESTS == 1 )
- {
- vCreateBlockTimeTasks();
- }
- #endif /* configSTART_BLOCK_TIME_TESTS */
-
- #if( configSTART_ABORT_DELAY_TESTS == 1 )
- {
- vCreateAbortDelayTasks();
- }
- #endif /* configSTART_ABORT_DELAY_TESTS */
-
- #if( configSTART_MESSAGE_BUFFER_TESTS == 1 )
- {
- vStartMessageBufferTasks( configMINIMAL_STACK_SIZE );
- }
- #endif /* configSTART_MESSAGE_BUFFER_TESTS */
-
- #if(configSTART_STREAM_BUFFER_TESTS == 1 )
- {
- vStartStreamBufferTasks();
- }
- #endif /* configSTART_STREAM_BUFFER_TESTS */
-
- #if( configSTART_STREAM_BUFFER_INTERRUPT_TESTS == 1 )
- {
- vStartStreamBufferInterruptDemo();
- }
- #endif /* configSTART_STREAM_BUFFER_INTERRUPT_TESTS */
-
- #if( ( configSTART_TIMER_TESTS == 1 ) && ( configUSE_PREEMPTION != 0 ) )
- {
- /* Don't expect these tasks to pass when preemption is not used. */
- vStartTimerDemoTask( testrunnerTIMER_TEST_PERIOD );
- }
- #endif /* ( configSTART_TIMER_TESTS == 1 ) && ( configUSE_PREEMPTION != 0 ) */
-
- #if( configSTART_INTERRUPT_QUEUE_TESTS == 1 )
- {
- vStartInterruptQueueTasks();
- }
- #endif /* configSTART_INTERRUPT_QUEUE_TESTS */
-
- #if( configSTART_REGISTER_TESTS == 1 )
- {
- vStartRegisterTasks( testrunnerREGISTER_TEST_PRIORITY );
- }
- #endif /* configSTART_REGISTER_TESTS */
-
- #if( configSTART_DELETE_SELF_TESTS == 1 )
- {
- /* The suicide tasks must be created last as they need to know how many
- * tasks were running prior to their creation. This then allows them to
- * ascertain whether or not the correct/expected number of tasks are
- * running at any given time. */
- vCreateSuicidalTasks( testrunnerCREATOR_TASK_PRIORITY );
- }
- #endif /* configSTART_DELETE_SELF_TESTS */
- }
-
- vTaskStartScheduler();
-}
-/*-----------------------------------------------------------*/
-
-void vApplicationTickHook( void )
-{
- #if( configSTART_TASK_NOTIFY_TESTS == 1 )
- {
- xNotifyTaskFromISR();
- }
- #endif /* configSTART_TASK_NOTIFY_TESTS */
-
- #if( configSTART_TASK_NOTIFY_ARRAY_TESTS == 1 )
- {
- xNotifyArrayTaskFromISR();
- }
- #endif /* configSTART_TASK_NOTIFY_ARRAY_TESTS */
-
- #if( configSTART_QUEUE_SET_TESTS == 1 )
- {
- vQueueSetAccessQueueSetFromISR();
- }
- #endif /* configSTART_QUEUE_SET_TESTS */
-
- #if( configSTART_QUEUE_OVERWRITE_TESTS == 1 )
- {
- vQueueOverwritePeriodicISRDemo();
- }
- #endif /* configSTART_QUEUE_OVERWRITE_TESTS */
-
- #if( configSTART_EVENT_GROUP_TESTS == 1 )
- {
- vPeriodicEventGroupsProcessing();
- }
- #endif /* configSTART_EVENT_GROUP_TESTS */
-
- #if( configSTART_INTERRUPT_SEMAPHORE_TESTS == 1 )
- {
- vInterruptSemaphorePeriodicTest();
- }
- #endif /* configSTART_INTERRUPT_SEMAPHORE_TESTS */
-
- #if( configSTART_QUEUE_SET_POLLING_TESTS == 1 )
- {
- vQueueSetPollingInterruptAccess();
- }
- #endif /* configSTART_QUEUE_SET_POLLING_TESTS */
-
- #if( configSTART_STREAM_BUFFER_TESTS == 1 )
- {
- vPeriodicStreamBufferProcessing();
- }
- #endif /* configSTART_STREAM_BUFFER_TESTS */
-
- #if( configSTART_STREAM_BUFFER_INTERRUPT_TESTS == 1 )
- {
- vBasicStreamBufferSendFromISR();
- }
- #endif /* configSTART_STREAM_BUFFER_INTERRUPT_TESTS */
-
- #if( ( configSTART_TIMER_TESTS == 1 ) && ( configUSE_PREEMPTION != 0 ) )
- {
- /* Only created when preemption is used. */
- vTimerPeriodicISRTests();
- }
- #endif /* ( configSTART_TIMER_TESTS == 1 ) && ( configUSE_PREEMPTION != 0 ) */
-
- #if( configSTART_INTERRUPT_QUEUE_TESTS == 1 )
- {
- portYIELD_FROM_ISR( xFirstTimerHandler() );
- }
- #endif /* configSTART_INTERRUPT_QUEUE_TESTS */
-}
-/*-----------------------------------------------------------*/
-
-static void prvCheckTask( void *pvParameters )
-{
-TickType_t xNextWakeTime;
-const TickType_t xCycleFrequency = pdMS_TO_TICKS( 5000UL );
-
- /* Silence compiler warnings about unused variables. */
- ( void ) pvParameters;
-
- /* Initialise xNextWakeTime - this only needs to be done once. */
- xNextWakeTime = xTaskGetTickCount();
-
- for( ;; )
- {
- /* Place this task in the blocked state until it is time to run again. */
- vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );
-
- #if( configSTART_TASK_NOTIFY_TESTS == 1 )
- {
- if( xAreTaskNotificationTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: Notification";
- }
- }
- #endif /* configSTART_TASK_NOTIFY_TESTS */
-
- #if( configSTART_TASK_NOTIFY_ARRAY_TESTS == 1 )
- {
- if( xAreTaskNotificationArrayTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: Notification Array";
- }
- }
- #endif /* configSTART_TASK_NOTIFY_ARRAY_TESTS */
-
- #if( configSTART_BLOCKING_QUEUE_TESTS == 1 )
- {
- if( xAreBlockingQueuesStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: BlockQueue";
- }
- }
- #endif /* configSTART_BLOCKING_QUEUE_TESTS */
-
- #if( configSTART_SEMAPHORE_TESTS == 1 )
- {
- if( xAreSemaphoreTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: SemTest";
- }
- }
- #endif /* configSTART_SEMAPHORE_TESTS */
-
- #if( configSTART_POLLED_QUEUE_TESTS == 1 )
- {
- if( xArePollingQueuesStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: PollQueue";
- }
- }
- #endif /* configSTART_POLLED_QUEUE_TESTS */
-
- #if( configSTART_INTEGER_MATH_TESTS == 1 )
- {
- if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: IntMath";
- }
- }
- #endif /* configSTART_INTEGER_MATH_TESTS */
-
- #if( configSTART_GENERIC_QUEUE_TESTS == 1 )
- {
- if( xAreGenericQueueTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: GenQueue";
- }
- }
- #endif /* configSTART_GENERIC_QUEUE_TESTS */
-
- #if( configSTART_PEEK_QUEUE_TESTS == 1 )
- {
- if( xAreQueuePeekTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: QueuePeek";
- }
- }
- #endif /* configSTART_PEEK_QUEUE_TESTS */
-
- #if( configSTART_MATH_TESTS == 1 )
- {
- if( xAreMathsTaskStillRunning() != pdPASS )
- {
- pcStatusMessage = "Error: Flop";
- }
- }
- #endif /* configSTART_MATH_TESTS */
-
- #if( configSTART_RECURSIVE_MUTEX_TESTS == 1 )
- {
- if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: RecMutex";
- }
- }
- #endif /* configSTART_RECURSIVE_MUTEX_TESTS */
-
- #if( configSTART_COUNTING_SEMAPHORE_TESTS == 1 )
- {
- if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: CountSem";
- }
- }
- #endif /* configSTART_COUNTING_SEMAPHORE_TESTS */
-
- #if( configSTART_QUEUE_SET_TESTS == 1 )
- {
- if( xAreQueueSetTasksStillRunning() != pdPASS )
- {
- pcStatusMessage = "Error: Queue set";
- }
- }
- #endif /* configSTART_QUEUE_SET_TESTS */
-
- #if( configSTART_QUEUE_OVERWRITE_TESTS == 1 )
- {
- if( xIsQueueOverwriteTaskStillRunning() != pdPASS )
- {
- pcStatusMessage = "Error: Queue overwrite";
- }
- }
- #endif /* configSTART_QUEUE_OVERWRITE_TESTS */
-
- #if( configSTART_EVENT_GROUP_TESTS == 1 )
- {
- if( xAreEventGroupTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: EventGroup";
- }
- }
- #endif /* configSTART_EVENT_GROUP_TESTS */
-
- #if( configSTART_INTERRUPT_SEMAPHORE_TESTS == 1 )
- {
- if( xAreInterruptSemaphoreTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: IntSem";
- }
- }
- #endif /* configSTART_INTERRUPT_SEMAPHORE_TESTS */
-
- #if( configSTART_QUEUE_SET_POLLING_TESTS == 1 )
- {
- if( xAreQueueSetPollTasksStillRunning() != pdPASS )
- {
- pcStatusMessage = "Error: Queue set polling";
- }
- }
- #endif /* configSTART_QUEUE_SET_POLLING_TESTS */
-
- #if( configSTART_BLOCK_TIME_TESTS == 1 )
- {
- if( xAreBlockTimeTestTasksStillRunning() != pdPASS )
- {
- pcStatusMessage = "Error: Block time";
- }
- }
- #endif /* configSTART_BLOCK_TIME_TESTS */
-
- #if( configSTART_ABORT_DELAY_TESTS == 1 )
- {
- if( xAreAbortDelayTestTasksStillRunning() != pdPASS )
- {
- pcStatusMessage = "Error: Abort delay";
- }
- }
- #endif /* configSTART_ABORT_DELAY_TESTS */
-
- #if( configSTART_MESSAGE_BUFFER_TESTS == 1 )
- {
- if( xAreMessageBufferTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: MessageBuffer";
- }
- }
- #endif /* configSTART_MESSAGE_BUFFER_TESTS */
-
- #if( configSTART_STREAM_BUFFER_TESTS == 1 )
- {
- if( xAreStreamBufferTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: StreamBuffer";
- }
- }
- #endif /* configSTART_STREAM_BUFFER_TESTS */
-
- #if( configSTART_STREAM_BUFFER_INTERRUPT_TESTS == 1 )
- {
- if( xIsInterruptStreamBufferDemoStillRunning() != pdPASS )
- {
- pcStatusMessage = "Error: Stream buffer interrupt";
- }
- }
- #endif /* configSTART_STREAM_BUFFER_INTERRUPT_TESTS */
-
- #if( ( configSTART_TIMER_TESTS == 1 ) && ( configUSE_PREEMPTION != 0 ) )
- {
- if( xAreTimerDemoTasksStillRunning( xCycleFrequency ) != pdTRUE )
- {
- pcStatusMessage = "Error: TimerDemo";
- }
- }
- #endif /* ( configSTART_TIMER_TESTS == 1 ) && ( configUSE_PREEMPTION != 0 ) */
-
- #if( configSTART_INTERRUPT_QUEUE_TESTS == 1 )
- {
- if( xAreIntQueueTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: IntQueue";
- }
- }
- #endif /* configSTART_INTERRUPT_QUEUE_TESTS */
-
- #if( configSTART_REGISTER_TESTS == 1 )
- {
- if( xAreRegisterTasksStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: RegTests";
- }
- }
- #endif /* configSTART_REGISTER_TESTS */
-
- #if( configSTART_DELETE_SELF_TESTS == 1 )
- {
- if( xIsCreateTaskStillRunning() != pdTRUE )
- {
- pcStatusMessage = "Error: Death";
- }
- }
- #endif /* configSTART_DELETE_SELF_TESTS */
-
- configPRINTF( ( "%s \r\n", pcStatusMessage ) );
- }
-}
-/*-----------------------------------------------------------*/