wiki:Projects/GSoC/TestSuite/tasks

Version 21 (modified by Xiaochen Pan, on Aug 19, 2012 at 4:22:16 AM) (diff)

/* Posix Thread Communication */

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"|General Area Written Test | width="300pt"|sp* |}

{| 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"|General Area Written Test | width="300pt"| |}

{| 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="200pt"|General Area Written Test | width="300pt"| |}

{| class="wikitable"

! width="150pt"|Subarea ! width="150pt"|Subsubarea ! width="225pt"|Written Tests

| rowspan="16"|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 |

|schedule alarm in microseconds |

| rowspan="9"|semaphore |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="13"|mutex |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="8"|condition variable | 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="7"|message | 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="200pt"|General Area Written Test |width="300pt"| |}

{| 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 |

|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 | |

|Constant Bandwidth Server Scheduler | |

|Simple Priority Scheduler | |

|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"| |}

{| 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 | | |}

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 | |}