= TestSuite/tasks = = Tasks Management = = Task Management = {| class="wikitable" |- !width="200pt"|General Area Written Test | width="300pt"|sp* |} {| class="wikitable" |- ! width="200pt"|Subarea ! width="300pt"|Written Tests |- | create task | |- | obtain task id | |- | start task | |- | restart task | sp05 |- | suspend task | sp04, sp05 |- | resume task | sp04, sp05 |- | delay task | sp03 |- | change task priority | sp07 |- | change task mode | sp04, sp08 |- | notepad locations | spnotepad* |- | task deletion | sp04 |- | monitor task | monitor* |- | debug manager | sp10 |- | critical section | spcritical* |} = Interrupt Management = {| class="wikitable" |- ! width="200pt"|Subarea ! width="300pt"|Written Tests |- | establish ISR | |- | enable and disable interrupts | |- | flash interrupt | |- | check whether ISR in process | |} = Posix Process Management = {| class="wikitable" |- ! width="200pt"|Subarea ! width="300pt"|Written Tests |- | exit | |- | Process Environment Manager | psxid*, sysconf |} = Posix Thread Management = {| class="wikitable" |- !width="200pt"|General Area Written Test | width="300pt"|psx*, spthreadq01, psxclassic*, psxgetrusage, psxhdrs |} {| class="wikitable" |- ! width="200pt"|Subarea ! width="300pt"|Written Tests |- |initialization |psxautoinit |- |destroy | |- |set and get detach state | |- |set and get thread stack size | |- |set and get thread stack address | |- |set and get thread scheduling scope | |- |set and get inherit scheduler flag | |- |set and get scheduling policy | |- |set and get scheduling parameters | |- |create thread | |- |exit thread | |- |detach thread | |- |join thread |psxeintr_join |- |get thread id | |- |compare thread id | |- |dynamic package initialization | |- |set thread scheduling parameters | |- |get thread scheduling parameters | |- |thread cancellation |psxcancel, psxcleanup* |- |remove cancellation handler | |- |Key Management |psxkey* |- |Spinlock |psxspin* |}= Task Communication and Synchronization = {| class="wikitable" |- ! width="200pt"|Subarea ! width="200pt"|subsubarea ! width="300pt"|Written Tests |- |rowspan="3"| event | build event set | |- | send event | |- | receive event | |- |rowspan="6"| message |create message queue | |- |obtain message id | |- |receive message | |- |send message | |- |broadcast message | |- |delete message | |- |rowspan="5"| semaphore |create semaphore | |- |obtain semaphore id | |- |acquire semaphore | |- |release semaphore | |- |delete semaphore | |- |rowspan="3"| signal |build signal set | |- |establish ASR | |- |send signal set | |- |rowspan="5"| barrier |create barrier | |- |get id of barrier | |- |delete a barrier | |- |wait a barrier | |- |release a barrier | |}= Posix Thread Communication = {| class="wikitable" |- ! width="150pt"|Subarea ! width="150pt"|Subsubarea ! width="225pt"|Written Tests |- | rowspan="17"|signal ! general test for signal | psxsignal |- |add signal to/delete signal from signal set | |- |fill a signal set | |- |signal is member of set | |- |empty a signal set | |- |examine and change signal action | |- |send a signal to a thread | |- |examine and change process blocked signals | |- |examine and change thread blocked signals | |- |send signal to a process | |- |examine pending signals | |- |wait for a signal | |- |suspend process execution | |- |synchronously accept a signal(with and without timeout) | |- |queue a signal to a process | |- |schedule alarm |psxalarm01 |- |schedule alarm in microseconds |psxalarm01 |- | rowspan="10"|semaphore ! general test for semaphore | psxsem01 |- |initialize an unnamed semaphore | |- |destroy an unnamed semaphore | |- |open and close a named semaphore | |- |unlink a semaphore | |- |wait on a semaphore | |- |non-blocking wait on a semaphore | |- |wait on a semaphore for a specified time | |- |unblock a semaphore | |- |get the value of a semaphore | |- | rowspan="14"|mutex ! general test for mutex |psxmutexattr* |- |Initialize a mutex attribute set | |- |destroy a mutex attribute set | |- |set and get the blocking protocol | |- |set and get the priority ceiling | |- |set and get the visibility | |- |initialize a mutex | |- |destroy a mutex | |- |lock a mutex | |- |poll to lock a mutex | |- |lock a mutex with timeout | |- |unlock a mutex | |- |dynamically set the priority ceiling | |- |get the current priority ceiling | |- | rowspan="9"|condition variable ! general test for condition variable |psxcond01 |- | initialize a condition variable attribute set | |- |destroy a condition variable attribute set | |- |set and get process shared attribute | |- |initialize and destroy condition variable | |- |signal a condition variable | |- |broadcast a condition variable | |- |wait on a condition variable | |- |wait with a timeout a condition variable | |- | rowspan="8"|message ! general test for message |psxmesgq* |- | open or create a message queue | |- | close a message queue | |- | remove a message queue | |- | send a message to a message queue | |- | receive a message from a message queue | |- | notification of receipt of a message on an empty queue | |- | set and get the attribute of a message queue | |- | Barrier | | psxbarrier* |} = Tasks Scheduling = {| class="wikitable" |- ! width="175pt"|Subarea ! width="175pt"|Subsubarea ! width="262pt"|Written Tests |- |rowspan="5"|Round Robin |set task priority level | |- |task preemption | |- |task time slicing control | |- |manual round-robin selection | |- |dispatching task | |- |rowspan="9"|Rate Monotonic |create rate monotonic period |rtmonuse |- |get id of period | |- |cancel a period | |- |delete a rate monotonic period | |- |conclude current/start next period | |- |obtain status from a period | |- |obtain statistics from a period | |- |reset statistics for a period/all periods | |- |print period statistics report | |- |Earliest Deadline First | |spedfsched* |- |Constant Bandwidth Server Scheduler | |spcbssched01 |- |Simple Priority Scheduler | |spsimplesched |- |rowspan="4"|Posix Schedule Management |get minimum priority value | |- |get maximum priority value | |- |get time slicing quantum | |- |yield the processor | |} = Multiprocessing Communication and Synchronization = {| class="wikitable" |- !width="200pt"|General Area Written Test |width="300pt"|mp* |} {| class="wikitable" |- ! width="125pt"|Subarea ! width="125pt"|Subsubarea ! width="187pt"|Written Tests |- |rowspan="10"|Multiprocessor Communications Interface Layer(MPCI) |Initialization | |- |get_packet | |- |return_packet | |- |send_packet | |- |receive_packet | |- |common endian format conversion | |- |alignment of data structure | |- |floating point number representation | |- |negative integer representation | |- |announce packet | |- |Task Dispatching Interface | | |- |Symmetric Multiprocessing | |smp* |} = Fatal Error = {| class="wikitable" |- !width="200pt"|General Area Written Test |width="300pt"| |} {| class="wikitable" |- ! width="200pt"|Subarea ! width="300pt"|Written Tests |- | invoke the default fatal error handler | |- | user supplied fatal error handler | |- | RTEMS fatal error handler | |}