RTEMS 6.1-rc4
Loading...
Searching...
No Matches
Modules | Files | Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Validation Test Suites

This group contains the test suites related to validation tests. More...

Modules

 spec:/testsuites/bsps/fatal-clock-xil-ttc-irq-install
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/bsps/fatal-extension
 This validation test suite provides an application configuration to perform a shutdown.
 
 spec:/testsuites/bsps/fatal-sparc-leon3-cache-snooping-disabled-boot
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/bsps/fatal-sparc-leon3-cache-snooping-disabled-secondary
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/bsps/fatal-sparc-leon3-clock-initialization
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/bsps/validation-bsp-0
 This general purpose validation test suite provides enough resources to run target-specific tests.
 
 spec:/testsuites/fatal-boot-processor-not-assigned-to-scheduler
 This validation test suite uses an application configuration which triggers a fatal error during system initialization.
 
 spec:/testsuites/fatal-idle-thread-create-failed
 This validation test suite contains a test case which is triggered by a fatal error during system initialization.
 
 spec:/testsuites/fatal-idle-thread-stack-too-small
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/fatal-init-task-construct-failed
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/fatal-mandatory-processor-not-present
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/fatal-scheduler-requires-exactly-one-processor
 This validation test suite uses an application configuration which triggers a fatal error during system initialization.
 
 spec:/testsuites/fatal-smp
 This validation test suite contains a test case which triggers SMP-specific fatal errors.
 
 spec:/testsuites/fatal-start-of-mandatory-processor-failed
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/fatal-start-on-not-online-processor
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/fatal-too-large-tls-size
 This validation test suite contains a test case which triggers a fatal error during system initialization.
 
 spec:/testsuites/performance-no-clock-0
 This general purpose performance test suite provides enough resources to run basic performance tests for all specified managers and functions.
 
 spec:/testsuites/terminate
 This validation test suite contains a test case for the system termination procedure.
 
 spec:/testsuites/userext
 This validation test suite contains a test cases related to the invocation of user extensions.
 
 spec:/testsuites/validation-0
 This general purpose validation test suite provides enough resources to run basic tests for all specified managers and functions.
 
 spec:/testsuites/validation-1
 This general purpose validation test suite provides enough resources to run basic tests for all specified managers and functions.
 
 spec:/testsuites/validation-acfg-0
 This validation test suite is used to validate the default value of application configuration options taking the optional BSP provided settings into account.
 
 spec:/testsuites/validation-acfg-1
 This validation test suite is used to validate the default value of application configuration options where all optional BSP provided settings are disabled.
 
 spec:/testsuites/validation-cache
 This validation test suite provides enough resources to run tests for the directives of the Cache Manager.
 
 spec:/testsuites/validation-intr
 This validation test suite provides enough resources to run tests for the interrupt controller related directives of the Interrupt Manager.
 
 spec:/testsuites/validation-io-kernel
 This validation test suite contains test cases which test the kernel character input/output device provided by the BSP before the system initialization is performed.
 
 spec:/testsuites/validation-no-clock-0
 This general purpose validation test suite provides enough resources to run basic tests without a Clock Driver for all specified managers and functions.
 
 spec:/testsuites/validation-non-smp
 This test suite for non-SMP test cases provides enough resources to run basic tests for all specified managers and functions.
 
 spec:/testsuites/validation-one-cpu-0
 This general purpose validation test suite provides enough resources to run basic tests with exactly one processor and without a Clock Driver.
 
 spec:/testsuites/validation-one-cpu-1
 This general purpose validation test suite provides enough resources to run basic tests with exactly one processor and without a Clock Driver.
 
 spec:/testsuites/validation-smp-one-cpu-0
 This general purpose validation test suite provides enough resources to run basic tests for all specified managers and functions in a configuration with exactly one processor and an uniprocessor scheduler.
 
 spec:/testsuites/validation-smp-only-0
 This test suite for SMP-only test cases provides enough resources to run basic tests for all specified managers and functions.
 
 spec:/testsuites/validation-smp-only-2
 This SMP-only test suite validates the clustered scheduler configuration through an application configuration with a processor maximum of two. The second processor has a optional scheduler assigned and fails to start.
 
 spec:/testsuites/validation-timecounter-0
 This validation test suite is intended test cases related to the installation of timecouters. The Clock Driver is disabled.
 
 spec:/testsuites/validation-timecounter-1
 This validation test suite is intended test cases related to the use of timecouters. The Clock Driver is enabled.
 
 spec:/testsuites/validation-timecounter-smp-0
 This validation test suite is intended test cases related to the use of timecouters. The Clock Driver is disabled.
 
 spec:/testsuites/validation-tls-0
 This validation test suite contains test cases related to the thread-local storage support.
 
 spec:/testsuites/validation-tls-1
 This validation test suite contains test cases related to the thread-local storage support.
 

Files

file  ts-acfg.h
 This header file provides a validation test suite runner for validation test cases specific to the application configuration.
 
file  ts-config.h
 This header file provides the constants used by the test suite configuration.
 
file  ts-default.h
 This header file provides the default validation test suite runner and application configuration.
 
file  ts-fatal-sysinit.h
 This header file provides a configurable validation test suite runner and application configuration for fatal error tests which occur during system initialization.
 
file  ts-idle.h
 This header file provides a configurable validation test suite runner and application configuration for tests which should run within an idle task without a user initialization task.
 
file  tx-call-within-isr.c
 This source file contains the implementation of CallWithinISRClear(), CallWithinISRGetVector(), CallWithinISR(), CallWithinISRRaise(), CallWithinISRSubmit(), and CallWithinISRWait().
 
file  tx-default-task-config.c
 This source file contains the definition of DefaultTaskConfig.
 
file  tx-interrupt.c
 This source file contains the implementation of HasInterruptVectorEntriesInstalled().
 
file  tx-io-relax.c
 This source file contains the implementation of SetIORelaxHandler().
 
file  tx-memory-alloc.c
 This source file contains the implementation of MemoryAllocationFailWhen() and __wrap_rtems_malloc().
 
file  tx-preemption-intervention.c
 This source file contains the implementation of SetPreemptionIntervention().
 
file  tx-support.c
 This source file contains the implementation of support functions for the validation test cases.
 
file  tx-support.h
 This header file provides the support functions for the validation test cases.
 
file  tx-thread-queue.c
 This source file contains the implementation of the thread queue test support.
 
file  tx-thread-queue.h
 This header file provides the functions to test the Thread Queue Handler.
 
file  tx-timecounter.c
 This source file contains the definition of SetGetTimecountHandler(), GetTimecountCounter(), and SetTimecountCounter().
 
file  tx-timer-server.c
 This source file contains the definition of DeleteTimerServer().
 
file  tx-wrap-thread-queue.c
 This source file contains the implementation of the thread queue wrapper.
 

Data Structures

struct  TaskTimerInfo
 
struct  MemoryContext
 
struct  CallWithinISRRequest
 
struct  WrapThreadQueueContext
 
struct  Timer_Scheduling_Data
 This structure provides data used by RTEMS to schedule a timer service routine. More...
 
struct  ExtensionCalls
 
struct  TQContext
 
struct  TQSemContext
 
struct  TQMtxContext
 

Macros

#define TEST_MICROSECONDS_PER_TICK   1000
 
#define TEST_RUNNER_NAME   rtems_build_name( 'R', 'U', 'N', ' ' )
 
#define TEST_RUNNER_ARGUMENT   123456789
 
#define TEST_RUNNER_INITIAL_MODES   RTEMS_NO_ASR
 
#define TEST_SCHEDULER_A_NAME   rtems_build_name( 'A', ' ', ' ', ' ' )
 
#define TEST_SCHEDULER_B_NAME   rtems_build_name( 'B', ' ', ' ', ' ' )
 
#define TEST_SCHEDULER_C_NAME   rtems_build_name( 'C', ' ', ' ', ' ' )
 
#define TEST_SCHEDULER_D_NAME   rtems_build_name( 'D', ' ', ' ', ' ' )
 
#define TEST_BASE_STACK_SIZE   ( 4 * RTEMS_MINIMUM_STACK_SIZE )
 
#define TEST_MAXIMUM_TLS_SIZE    RTEMS_ALIGN_UP( 64, RTEMS_TASK_STORAGE_ALIGNMENT )
 
#define TEST_MINIMUM_STACK_SIZE    ( TEST_BASE_STACK_SIZE + CPU_STACK_ALIGNMENT )
 
#define TEST_IDLE_STACK_SIZE    ( TEST_BASE_STACK_SIZE + 2 * CPU_STACK_ALIGNMENT )
 
#define TEST_INTERRUPT_STACK_SIZE    ( TEST_BASE_STACK_SIZE + 4 * CPU_INTERRUPT_STACK_ALIGNMENT )
 
#define TEST_MAXIMUM_BARRIERS   7
 
#define TEST_MAXIMUM_MESSAGE_QUEUES   3
 
#define TEST_MAXIMUM_PARTITIONS   4
 
#define TEST_MAXIMUM_PERIODS   2
 
#define TEST_MAXIMUM_SEMAPHORES   7
 
#define TEST_MAXIMUM_TASKS   32
 
#define TEST_MAXIMUM_TIMERS   10
 
#define TEST_MAXIMUM_USER_EXTENSIONS   5
 
#define TEST_TICKS_PER_TIMESLICE   2
 
#define PRIO_DEFAULT   1
 This constants represents the default priority of the runner task.
 
#define PRIO_INVALID   0xfffffffe
 This constants represents an invalid RTEMS task priority value.
 
#define PRIO_NEARLY_IDLE   126
 This constants represents a priority which is close to the priority of the idle thread.
 
#define PRIO_FLEXIBLE   64
 This constants represents a priority with a wider range of higher and lower priorities around it.
 
#define INVALID_ID   0xfffffffd
 This constants represents an invalid RTEMS object identifier.
 
#define OBJECT_NAME   rtems_build_name( 'T', 'E', 'S', 'T' )
 This constants represents an object name for tests.
 
#define CreateTask(name, priority)
 
#define SCHEDULER_A_ID   0xf010001
 
#define SCHEDULER_B_ID   0xf010002
 
#define SCHEDULER_C_ID   0xf010003
 
#define SCHEDULER_D_ID   0xf010004
 
#define SOFTWARE_TIMECOUNTER_FREQUENCY   1000000
 This constant represents the fake frequency of the software timecounter.
 

Typedefs

typedef uint32_t(* GetTimecountHandler) (void)
 
typedef void(* FatalHandler) (rtems_fatal_source source, rtems_fatal_code code, void *arg)
 
typedef struct TQContext TQContext
 
typedef struct TQSemContext TQSemContext
 
typedef struct TQMtxContext TQMtxContext
 

Enumerations

enum  Priority {
  PRIO_PSEUDO_ISR , PRIO_VERY_ULTRA_HIGH , PRIO_ULTRA_HIGH , PRIO_VERY_HIGH ,
  PRIO_HIGH , PRIO_NORMAL , PRIO_LOW , PRIO_VERY_LOW ,
  PRIO_ULTRA_LOW
}
 
enum  TaskTimerState {
  TASK_TIMER_INVALID , TASK_TIMER_INACTIVE , TASK_TIMER_TICKS , TASK_TIMER_REALTIME ,
  TASK_TIMER_MONOTONIC
}
 
enum  Timer_States { TIMER_INVALID , TIMER_INACTIVE , TIMER_SCHEDULED , TIMER_PENDING }
 The various states of a timer.
 
enum  TQNodeKind { TQ_NODE_ONLY , TQ_NODE_VITAL , TQ_NODE_DISPENSABLE }
 
enum  TQWaitState { TQ_WAIT_STATE_BLOCKED , TQ_WAIT_STATE_INTEND_TO_BLOCK , TQ_WAIT_STATE_READY_AGAIN }
 
enum  TQWorkerKind {
  TQ_BLOCKER_A , TQ_BLOCKER_B , TQ_BLOCKER_C , TQ_BLOCKER_D ,
  TQ_BLOCKER_E , TQ_WORKER_F , TQ_HELPER_A , TQ_HELPER_B ,
  TQ_HELPER_C , TQ_WORKER_COUNT
}
 
enum  TQMutex {
  TQ_MUTEX_A , TQ_MUTEX_B , TQ_MUTEX_C , TQ_MUTEX_D ,
  TQ_MUTEX_NO_PROTOCOL , TQ_MUTEX_FIFO , TQ_MUTEX_COUNT
}
 
enum  TQDiscipline { TQ_FIFO , TQ_PRIORITY }
 
enum  TQWait { TQ_NO_WAIT , TQ_WAIT_FOREVER , TQ_WAIT_TIMED }
 
enum  TQDeadlock { TQ_DEADLOCK_STATUS , TQ_DEADLOCK_FATAL }
 
enum  TQEvent {
  TQ_EVENT_ENQUEUE_PREPARE = RTEMS_EVENT_0 , TQ_EVENT_ENQUEUE = RTEMS_EVENT_1 , TQ_EVENT_ENQUEUE_DONE = RTEMS_EVENT_2 , TQ_EVENT_SURRENDER = RTEMS_EVENT_3 ,
  TQ_EVENT_RUNNER_SYNC = RTEMS_EVENT_4 , TQ_EVENT_RUNNER_SYNC_2 = RTEMS_EVENT_5 , TQ_EVENT_HELPER_A_SYNC = RTEMS_EVENT_6 , TQ_EVENT_HELPER_B_SYNC = RTEMS_EVENT_7 ,
  TQ_EVENT_MUTEX_A_OBTAIN = RTEMS_EVENT_8 , TQ_EVENT_MUTEX_A_RELEASE = RTEMS_EVENT_9 , TQ_EVENT_MUTEX_B_OBTAIN = RTEMS_EVENT_10 , TQ_EVENT_MUTEX_B_RELEASE = RTEMS_EVENT_11 ,
  TQ_EVENT_BUSY_WAIT = RTEMS_EVENT_12 , TQ_EVENT_FLUSH_ALL = RTEMS_EVENT_13 , TQ_EVENT_FLUSH_PARTIAL = RTEMS_EVENT_14 , TQ_EVENT_SCHEDULER_RECORD_START = RTEMS_EVENT_15 ,
  TQ_EVENT_SCHEDULER_RECORD_STOP = RTEMS_EVENT_16 , TQ_EVENT_TIMEOUT = RTEMS_EVENT_17 , TQ_EVENT_MUTEX_NO_PROTOCOL_OBTAIN = RTEMS_EVENT_18 , TQ_EVENT_MUTEX_NO_PROTOCOL_RELEASE = RTEMS_EVENT_19 ,
  TQ_EVENT_ENQUEUE_FATAL = RTEMS_EVENT_20 , TQ_EVENT_MUTEX_C_OBTAIN = RTEMS_EVENT_21 , TQ_EVENT_MUTEX_C_RELEASE = RTEMS_EVENT_22 , TQ_EVENT_MUTEX_FIFO_OBTAIN = RTEMS_EVENT_23 ,
  TQ_EVENT_MUTEX_FIFO_RELEASE = RTEMS_EVENT_24 , TQ_EVENT_ENQUEUE_TIMED = RTEMS_EVENT_25 , TQ_EVENT_MUTEX_D_OBTAIN = RTEMS_EVENT_26 , TQ_EVENT_MUTEX_D_RELEASE = RTEMS_EVENT_27 ,
  TQ_EVENT_PIN = RTEMS_EVENT_28 , TQ_EVENT_UNPIN = RTEMS_EVENT_29 , TQ_EVENT_COUNT = RTEMS_EVENT_30
}
 
enum  TQEnqueueVariant { TQ_ENQUEUE_BLOCKS , TQ_ENQUEUE_STICKY }
 
enum  TQSemVariant { TQ_SEM_BINARY , TQ_SEM_COUNTING }
 
enum  TQMtxProtocol { TQ_MTX_NO_PROTOCOL , TQ_MTX_PRIORITY_INHERIT , TQ_MTX_PRIORITY_CEILING , TQ_MTX_MRSP }
 
enum  TQMtxRecursive { TQ_MTX_RECURSIVE_ALLOWED , TQ_MTX_RECURSIVE_DEADLOCK , TQ_MTX_RECURSIVE_UNAVAILABLE }
 
enum  TQMtxOwnerCheck { TQ_MTX_NO_OWNER_CHECK , TQ_MTX_CHECKS_OWNER }
 

Functions

void * test_task_stack_allocate (size_t size)
 
void test_task_stack_deallocate (void *stack)
 
void * test_idle_task_stack_allocate (uint32_t cpu_index, size_t *size)
 
rtems_id DoCreateTask (rtems_name name, rtems_task_priority priority)
 
void StartTask (rtems_id id, rtems_task_entry entry, void *arg)
 
void DeleteTask (rtems_id id)
 
void SuspendTask (rtems_id id)
 
void SuspendSelf (void)
 
void ResumeTask (rtems_id id)
 
bool IsTaskSuspended (rtems_id id)
 
rtems_event_set QueryPendingEvents (void)
 
rtems_event_set PollAnyEvents (void)
 
rtems_event_set ReceiveAnyEvents (void)
 
rtems_event_set ReceiveAnyEventsTimed (rtems_interval ticks)
 
void ReceiveAllEvents (rtems_event_set events)
 
void SendEvents (rtems_id id, rtems_event_set events)
 
rtems_mode GetMode (void)
 
rtems_mode SetMode (rtems_mode set, rtems_mode mask)
 
rtems_task_priority GetPriority (rtems_id id)
 
rtems_task_priority GetPriorityByScheduler (rtems_id task_id, rtems_id scheduler_id)
 
rtems_task_priority SetPriority (rtems_id id, rtems_task_priority priority)
 
rtems_task_priority GetSelfPriority (void)
 
rtems_task_priority SetSelfPriority (rtems_task_priority priority)
 
rtems_task_priority SetSelfPriorityNoYield (rtems_task_priority priority)
 
rtems_id GetScheduler (rtems_id id)
 
rtems_id GetSelfScheduler (void)
 
void SetScheduler (rtems_id task_id, rtems_id scheduler_id, rtems_task_priority priority)
 
void SetSelfScheduler (rtems_id scheduler_id, rtems_task_priority priority)
 
void GetAffinity (rtems_id id, cpu_set_t *set)
 
void GetSelfAffinity (cpu_set_t *set)
 
void SetAffinity (rtems_id id, const cpu_set_t *set)
 
void SetSelfAffinity (const cpu_set_t *set)
 
void SetAffinityOne (rtems_id id, uint32_t cpu_index)
 
void SetSelfAffinityOne (uint32_t cpu_index)
 
void SetAffinityAll (rtems_id id)
 
void SetSelfAffinityAll (void)
 
void Yield (void)
 
void YieldTask (rtems_id id)
 
void AddProcessor (rtems_id scheduler_id, uint32_t cpu_index)
 
void RemoveProcessor (rtems_id scheduler_id, uint32_t cpu_index)
 
rtems_id CreateMutex (void)
 
rtems_id CreateMutexNoProtocol (void)
 
rtems_id CreateMutexFIFO (void)
 
bool IsMutexOwner (rtems_id id)
 
void DeleteMutex (rtems_id id)
 
void ObtainMutex (rtems_id id)
 
void ObtainMutexTimed (rtems_id id, rtems_interval ticks)
 
void ObtainMutexDeadlock (rtems_id id)
 
void ReleaseMutex (rtems_id id)
 
struct Thread_queue_QueueGetMutexThreadQueue (rtems_id id)
 
void RestoreRunnerASR (void)
 
void RestoreRunnerMode (void)
 
void RestoreRunnerPriority (void)
 
void RestoreRunnerScheduler (void)
 
struct _Thread_ControlGetThread (rtems_id id)
 
struct _Thread_ControlGetExecuting (void)
 
void KillZombies (void)
 
void WaitForExecutionStop (rtems_id task_id)
 
void WaitForIntendToBlock (rtems_id task_id)
 
void WaitForHeir (uint32_t cpu_index, rtems_id task_id)
 
void WaitForNextTask (uint32_t cpu_index, rtems_id task_id)
 
void GetTaskTimerInfo (rtems_id id, TaskTimerInfo *info)
 
void GetTaskTimerInfoByThread (struct _Thread_Control *thread, TaskTimerInfo *info)
 
void ClockTick (void)
 
void FinalClockTick (void)
 Simulates a clock tick with the final expire time point of UINT64_MAX for all clocks.
 
void TimecounterTick (void)
 Simulates a single clock tick using the software timecounter.
 
GetTimecountHandler SetGetTimecountHandler (GetTimecountHandler handler)
 Sets the get timecount handler.
 
uint32_t GetTimecountCounter (void)
 Gets the software timecount counter value.
 
uint32_t SetTimecountCounter (uint32_t counter)
 Sets and gets the software timecount counter value.
 
rtems_id GetTimerServerTaskId (void)
 Return the task id of the timer server task.
 
bool DeleteTimerServer (void)
 Undo the effects of rtems_timer_initiate_server()
 
void MemorySave (MemoryContext *ctx)
 
void MemoryRestore (const MemoryContext *ctx)
 
void MemoryAllocationFailWhen (uint32_t counter)
 Fails a dynamic memory allocation when the counter reaches zero.
 
void CallWithinISR (void(*handler)(void *), void *arg)
 
void CallWithinISRSubmit (CallWithinISRRequest *request)
 
void CallWithinISRWait (const CallWithinISRRequest *request)
 
void CallWithinISRRaise (void)
 
void CallWithinISRClear (void)
 
rtems_vector_number CallWithinISRGetVector (void)
 
rtems_vector_number GetSoftwareInterruptVector (void)
 
void WrapThreadQueueInitialize (WrapThreadQueueContext *ctx, void(*handler)(void *), void *arg)
 
void WrapThreadQueueExtract (WrapThreadQueueContext *ctx, struct _Thread_Control *thread)
 
void WrapThreadQueueExtractDirect (WrapThreadQueueContext *ctx, Thread_Control *thread)
 
void WrapThreadQueueDestroy (WrapThreadQueueContext *ctx)
 
void SetPreemptionIntervention (struct Per_CPU_Control *cpu, void(*handler)(void *), void *arg)
 
rtems_vector_number GetValidInterruptVectorNumber (const rtems_interrupt_attributes *required)
 
rtems_vector_number GetTestableInterruptVector (const rtems_interrupt_attributes *required)
 
rtems_status_code RaiseSoftwareInterrupt (rtems_vector_number vector)
 
rtems_status_code ClearSoftwareInterrupt (rtems_vector_number vector)
 
bool HasInterruptVectorEntriesInstalled (rtems_vector_number vector)
 
Timer_Classes GetTimerClass (rtems_id id)
 Get the clock and context of a timer from RTEMS internal data.
 
void GetTimerSchedulingData (rtems_id id, Timer_Scheduling_Data *data)
 Get data related to scheduling a timer service routine from RTEMS internal structures.
 
Timer_States GetTimerState (rtems_id id)
 Get the state of a timer from RTEMS internal data.
 
void UnsetClock (void)
 Mark the realtime clock as never set.
 
void FatalInitialExtension (rtems_fatal_source source, bool always_set_to_false, rtems_fatal_code code)
 
void SetFatalHandler (FatalHandler fatal, void *arg)
 
void SetTaskSwitchExtension (rtems_task_switch_extension task_switch)
 
void ClearExtensionCalls (ExtensionCalls *calls)
 
void CopyExtensionCalls (const ExtensionCalls *from, ExtensionCalls *to)
 
void SetIORelaxHandler (void(*handler)(void *), void *arg)
 
void StartDelayThreadDispatch (uint32_t cpu_index)
 
void StopDelayThreadDispatch (uint32_t cpu_index)
 
bool AreInterruptsEnabled (void)
 
bool IsWhiteSpaceOnly (const char *s)
 
bool IsEqualIgnoreWhiteSpace (const char *a, const char *b)
 
void * IdleBody (uintptr_t ignored)
 
void TQSend (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQSendAndWaitForExecutionStop (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQSendAndWaitForIntendToBlock (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQSendAndWaitForExecutionStopOrIntendToBlock (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQSendAndSynchronizeRunner (TQContext *ctx, TQWorkerKind worker, rtems_event_set events)
 
void TQWaitForEventsReceived (const TQContext *ctx, TQWorkerKind worker)
 
void TQWaitForIntendToBlock (const TQContext *ctx, TQWorkerKind worker)
 
void TQWaitForExecutionStop (const TQContext *ctx, TQWorkerKind worker)
 
void TQClearDone (TQContext *ctx, TQWorkerKind worker)
 
void TQWaitForDone (const TQContext *ctx, TQWorkerKind worker)
 
void TQSynchronizeRunner (void)
 
void TQSynchronizeRunner2 (void)
 
void TQResetCounter (TQContext *ctx)
 
uint32_t TQGetCounter (const TQContext *ctx)
 
uint32_t TQGetWorkerCounter (const TQContext *ctx, TQWorkerKind worker)
 
void TQMutexObtain (const TQContext *ctx, TQMutex mutex)
 
void TQMutexRelease (const TQContext *ctx, TQMutex mutex)
 
void TQSetPriority (const TQContext *ctx, TQWorkerKind worker, Priority priority)
 
Priority TQGetPriority (const TQContext *ctx, TQWorkerKind worker)
 
void TQSetScheduler (const TQContext *ctx, TQWorkerKind worker, rtems_id scheduler_id, Priority priority)
 
void TQInitialize (TQContext *ctx)
 
void TQDestroy (TQContext *ctx)
 
void TQReset (TQContext *ctx)
 
void TQSortMutexesByID (TQContext *ctx)
 
void TQGetProperties (TQContext *ctx, TQWorkerKind enqueued_worker)
 
Status_Control TQConvertStatus (TQContext *ctx, Status_Control status)
 
void TQEnqueuePrepare (TQContext *ctx)
 
Status_Control TQEnqueue (TQContext *ctx, TQWait wait)
 
Status_Control TQEnqueueFatal (TQContext *ctx)
 
void TQEnqueueDone (TQContext *ctx)
 
Status_Control TQSurrender (TQContext *ctx)
 
void TQFlush (TQContext *ctx, bool flush_all)
 
rtems_tcbTQGetOwner (TQContext *ctx)
 
void TQSchedulerRecordStart (TQContext *ctx)
 
void TQSchedulerRecordStop (TQContext *ctx)
 
const T_scheduler_eventTQGetNextAny (TQContext *ctx, size_t *index)
 
const T_scheduler_eventTQGetNextBlock (TQContext *ctx, size_t *index)
 
const T_scheduler_eventTQGetNextUnblock (TQContext *ctx, size_t *index)
 
const T_scheduler_eventTQGetNextUpdatePriority (TQContext *ctx, size_t *index)
 
const T_scheduler_eventTQGetNextAskForHelp (TQContext *ctx, size_t *index)
 
void TQDoNothing (TQContext *ctx)
 
Status_Control TQDoNothingSuccessfully (TQContext *ctx)
 
Status_Control TQConvertStatusClassic (Status_Control status)
 
Status_Control TQConvertStatusPOSIX (Status_Control status)
 
void TQEnqueuePrepareDefault (TQContext *ctx)
 
void TQEnqueueDoneDefault (TQContext *ctx)
 
Status_Control TQEnqueueClassicSem (TQContext *ctx, TQWait wait)
 
Status_Control TQSurrenderClassicSem (TQContext *ctx)
 
rtems_tcbTQGetOwnerClassicSem (TQContext *ctx)
 
Status_Control TQSemSurrender (TQSemContext *ctx)
 
uint32_t TQSemGetCount (TQSemContext *ctx)
 
void TQSemSetCount (TQSemContext *ctx, uint32_t count)
 
Status_Control TQSemSurrenderClassic (TQSemContext *ctx)
 
uint32_t TQSemGetCountClassic (TQSemContext *ctx)
 
void TQSemSetCountClassic (TQSemContext *ctx, uint32_t count)
 

Variables

rtems_task_argument test_runner_argument
 
rtems_task_priority test_runner_initial_priority
 
rtems_mode test_runner_initial_modes
 
const rtems_task_config DefaultTaskConfig
 This task configurations may be used to construct a task during tests.
 

Detailed Description

This group contains the test suites related to validation tests.

Macro Definition Documentation

◆ CreateTask

#define CreateTask (   name,
  priority 
)
Value:
DoCreateTask( \
rtems_build_name( name[ 0 ], name[ 1 ], name[ 2 ], name[ 3 ] ), \
priority \
)

◆ PRIO_FLEXIBLE

#define PRIO_FLEXIBLE   64

This constants represents a priority with a wider range of higher and lower priorities around it.

It may be used for the worker threads together with PRIO_NEARLY_IDLE for the runner thread.

◆ PRIO_INVALID

#define PRIO_INVALID   0xfffffffe

This constants represents an invalid RTEMS task priority value.

It should be an invalid priority value which is not equal to RTEMS_CURRENT_PRIORITY and RTEMS_TIMER_SERVER_DEFAULT_PRIORITY.

◆ PRIO_NEARLY_IDLE

#define PRIO_NEARLY_IDLE   126

This constants represents a priority which is close to the priority of the idle thread.

It may be used for the runner thread together with PRIO_FLEXIBLE for worker threads.

Function Documentation

◆ DeleteTimerServer()

bool DeleteTimerServer ( void  )

Undo the effects of rtems_timer_initiate_server()

If rtems_timer_initiate_server() was never called before, nothing is done.

If rtems_timer_initiate_server() was called before, the created thread and other resources are freed so that rtems_timer_initiate_server() can be called again. There should be no pending timers which are not yet executed by the server task. Naturally, there should be no timer server timers scheduled for execution.

Returns
Returns true, if rtems_timer_initiate_server() has been invoked before and the timer server task has indeed been deleted, otherwise false.

◆ FinalClockTick()

void FinalClockTick ( void  )

Simulates a clock tick with the final expire time point of UINT64_MAX for all clocks.

This function does not update the clock ticks counter.

◆ GetTimecountCounter()

uint32_t GetTimecountCounter ( void  )

Gets the software timecount counter value.

Returns
Returns the current software timecounter counter value.

◆ GetTimerClass()

Timer_Classes GetTimerClass ( rtems_id  id)

Get the clock and context of a timer from RTEMS internal data.

With exception of TIMER_DORMANT, the return values are bits or-ed together.

Parameters
idThe timer ID.
Return values
TIMER_DORMANTEither the id argument is invalid or the timer has never been used before.
Returns
The TIMER_CLASS_BIT_ON_TASK is set, if the timer server routine was or will be executed in task context, otherwise it was or will be executed in interrupt context.

The TIMER_CLASS_BIT_TIME_OF_DAY is set, if the clock used is or was the ${/glossary/clock-realtime:/term}, otherwise the ${/glossary/clock-tick:/term} based clock is or was used.

◆ GetTimerSchedulingData()

void GetTimerSchedulingData ( rtems_id  id,
Timer_Scheduling_Data data 
)

Get data related to scheduling a timer service routine from RTEMS internal structures.

Parameters
idThe timer ID.
[out]dataIf the reference is not NULL, the data retrieved from internal RTEMS structures is stored here.

◆ GetTimerServerTaskId()

rtems_id GetTimerServerTaskId ( void  )

Return the task id of the timer server task.

This function is an attempt to avoid using RTEMS internal global _Timer_server throughout the validation test code.

Returns
Returns the task id of the timer server task, if rtems_timer_initiate_server() has been invoked before, otherwise - if the timer server task does not exist - RTEMS_INVALID_ID is returned.

◆ GetTimerState()

Timer_States GetTimerState ( rtems_id  id)

Get the state of a timer from RTEMS internal data.

Parameters
idThe timer ID.
Return values
TIMER_INVALIDThe id argument is invalid.
TIMER_INACTIVEThe timer is not scheduled (i.e. it is new, run off, or canceled).
TIMER_SCHEDULEDThe timer is scheduled.
TIMER_PENDINGThe timer is pending.

◆ MemoryAllocationFailWhen()

void MemoryAllocationFailWhen ( uint32_t  counter)

Fails a dynamic memory allocation when the counter reaches zero.

This function initializes an internal counter which is decremented before each dynamic memory allocation though the rtems_malloc() directive. When the counter decrements from one to zero, the allocation fails and NULL will be returned.

Parameters
counteris the initial counter value.

◆ SetGetTimecountHandler()

GetTimecountHandler SetGetTimecountHandler ( GetTimecountHandler  handler)

Sets the get timecount handler.

Using this function will replace the timecounter of the clock driver.

Returns
Returns the previous get timecount handler.

◆ SetTimecountCounter()

uint32_t SetTimecountCounter ( uint32_t  counter)

Sets and gets the software timecount counter value.

Parameters
counteris the new software timecounter counter value.
Returns
Returns the previous software timecounter counter value.

◆ TimecounterTick()

void TimecounterTick ( void  )

Simulates a single clock tick using the software timecounter.

In contrast to ClockTick(), this function updates also CLOCK_MONOTONIC and CLOCK_REALTIME to the next software timecounter clock tick time point.

This function is designed for test suites not having a clock driver.

◆ UnsetClock()

void UnsetClock ( void  )

Mark the realtime clock as never set.

This function manipulates RTEMS internal data structures to undo the effect of rtems_clock_set(). If the clock is not set, the function has no effect.

Variable Documentation

◆ DefaultTaskConfig

const rtems_task_config DefaultTaskConfig
extern

This task configurations may be used to construct a task during tests.

Only one task shall use this configuration at a time, otherwise two tasks would share a stack.