"Test Case","Test","Template","Implemented" "pthread_mutex_init","psxtmmutex01","psxtmtest_init_destroy","Yes" "pthread_mutex_destroy","psxtmmutex01","psxtmtest_init_destroy","Yes" "pthread_mutex_lock - not available, block","psxtmmutex02","psxtmtest_blocking","Yes" "pthread_mutex_lock - available","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_trylock - available","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_trylock - not available","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_unlock - no threads waiting","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_unlock - thread waiting, no preempt","psxtmmutex05","psxtmtest_unblocking_nopreempt","Yes" "pthread_mutex_unlock - thread waiting, preempt","psxtmmutex06","psxtmtest_unblocking_preempt","Yes" "pthread_mutex_timedlock - available","psxtmmutex03","psxtmtest_single","Yes" "pthread_mutex_timedlock - not available, block","psxtmmutex04","psxtmtest_blocking","Yes" "pthread_mutex_setprioceiling","psxtmmutex07","psxtmtest_single","Yes" "pthread_mutex_getprioceiling","psxtmmutex07","psxtmtest_single","Yes" ,,, "pthread_cond_init",,"psxtmtest_init_destroy", "pthread_cond_destroy",,"psxtmtest_init_destroy", "pthread_cond_signal - no threads waiting",,, "pthread_cond_signal - thread waiting, no preempt",,, "pthread_cond_signal - thread waiting, preempt",,, "pthread_cond_broadcast",,, "pthread_cond_wait - blocks",,"psxtmtest_blocking", "pthread_cond_timedwait - blocks",,"psxtmtest_blocking", ,,, "pthread_create - no preempt","psxtmthread01","psxtmtest_single","Yes" "pthread_create - preempt","psxtmthread02","psxtmtest_single", "pthread_join","psxtmthread03",, "pthread_detach",,, "pthread_exit",,, "pthread_self",,"psxtmtest_single", "pthread_equal",,"psxtmtest_single", "pthread_getschedparam",,"psxtmtest_single", "pthread_setschedparam - no thread switch",,"psxtmtest_single", "pthread_setschedparam - lower own priority, preempt",,"psxtmtest_single", "pthread_setschedparam - raise other priority, preempt",,"psxtmtest_single", ,,, "pthread_once",,, ,,, "pthread_key_create","psxtmkey01","psxtmtest_single","Yes" "pthread_setspecific","psxtmkey02","psxtmtest_single","Yes" "pthread_getspecific","psxtmkey02","psxtmtest_single","Yes" "pthread_key_delete","psxtmkey01","psxtmtest_single","Yes" ,,, "pthread_cancel",,, "pthread_setcancelstate",,, "pthread_setcanceltype",,, "pthread_testcancel",,, "pthread_cleanup_push",,, "pthread_cleanup_pop",,, ,,, "pthread_getcpuclockid",,, ,,, "pthread_barrier_init","psxtmbarrier01","psxtmtest_init_destroy", "pthread_barrier_destroy","psxtmbarrier01","psxtmtest_init_destroy", "pthread_barrier_wait - blocking","psxtmbarrier02","psxtmtest_blocking", "pthread_barrier_wait - releasing, no preempt","psxtmbarrier03","psxtmtest_unblocking_nopreempt", "pthread_barrier_wait - releasing, preempt","psxtmbarrier04","psxtmtest_unblocking_preempt", ,,, "pthread_spin_init",,"psxtmtest_init_destroy", "pthread_spin_destroy",,"psxtmtest_init_destroy", "pthread_spin_lock - available",,"psxtmtest_single", "pthread_spin_trylock - available",,"psxtmtest_single", "pthread_spin_trylock - not available",,"psxtmtest_single", "pthread_spin_unlock",,, ,,, "pthread_rwlock_init",,"psxtmtest_init_destroy", "pthread_rwlock_destroy",,"psxtmtest_init_destroy", "pthread_rwlock_rdlock - available",,"psxtmtest_single", "pthread_rwlock_rdlock - not available, blocks",,"psxtmtest_blocking", "pthread_rwlock_tryrdlock - available",,"psxtmtest_single", "pthread_rwlock_tryrdlock - not available",,"psxtmtest_single", "pthread_rwlock_timedrdlock - available",,"psxtmtest_single", "pthread_rwlock_timedrdlock - not available, blocks",,"psxtmtest_blocking", "pthread_rwlock_unlock - no threads waiting",,, "pthread_rwlock_unlock - thread waiting, no preempt",,, "pthread_rwlock_unlock - thread waiting, preempt",,, "pthread_rwlock_wrlock - available",,"psxtmtest_single", "pthread_rwlock_wrlock - not available, blocks",,"psxtmtest_blocking", "pthread_rwlock_trywrlock - available",,"psxtmtest_single", "pthread_rwlock_trywrlock - not available",,"psxtmtest_single", "pthread_rwlock_timedwrlock - available",,"psxtmtest_single", "pthread_rwlock_timedwrlock - not available, blocks",,"psxtmtest_blocking", ,,, "mq_open (first open)","psxtmmq01","psxtmtest_init_destroy", "mq_close (close of first)","psxtmmq01","psxtmtest_init_destroy", "mq_open (second open)","psxtmmq01","psxtmtest_init_destroy", "mq_close (close of second)","psxtmmq01","psxtmtest_init_destroy", "mq_unlink","psxtmmq01","psxtmtest_init_destroy", "mq_receive - available",,"psxtmtest_single", "mq_receive - not available, block",,"psxtmtest_blocking", "mq_timedreceive - available",,"psxtmtest_single", "mq_timedreceive - not available, blocks",,"psxtmtest_single", "mq_send - no threads waiting",,"psxtmtest_single", "mq_send - thread waiting, no preempt",,"psxtmtest_unblocking_nopreempt", "mq_send - thread waiting, preempt",,"psxtmtest_unblocking_preempt", "mq_timedsend - no threads waiting",,"psxtmtest_single", "mq_timedsend - thread waiting, no preempt",,"psxtmtest_unblocking_nopreempt", "mq_timedsend - thread waiting, preemption",,"psxtmtest_unblocking_preempt", "mq_notify ",,"psxtmtest_single", ,,, "sem_init","psxtmsem01","psxtmtest_single","Yes" "sem_destroy","psxtmsem01","psxtmtest_single","Yes" "sem_open (first open named)","psxtmsem01","psxtmtest_single","Yes" "sem_open (second open named)","psxtmsem01","psxtmtest_single","Yes" "sem_close (named first/nested close)","psxtmsem01","psxtmtest_single","Yes" "sem_unlink (does not delete)","psxtmsem01","psxtmtest_single","Yes" "sem_close (named second close - removes)","psxtmsem01","psxtmtest_single","Yes" "sem_unlink (deletes)","psxtmsem01","psxtmtest_single","Yes" "sem_wait - available","psxtmsem02","psxtmtest_single","Yes" "sem_wait - not available, block",,"psxtmtest_blocking", "sem_trywait - available","psxtmsem02","psxtmtest_single","Yes" "sem_trywait - not available","psxtmsem02","psxtmtest_single","Yes" "sem_post - no threads waiting","psxtmsem02","psxtmtest_single","Yes" "sem_post - thread waiting, no preempt","psxsemtm04","psxtmtest_unblocking_nopreempt","Yes" "sem_post - thread waiting, preempt","psxtmsem05","psxtmtest_unblocking_preempt", "sem_getvalue","psxtmsem02","psxtmtest_single","Yes" ,,, "sleep - yield","psxtmsleep01","psxtmtest_single","Yes" "sleep - blocking","psxtmsleep02","psxtmtest_blocking","Yes" "nanosleep - yield","psxtmnanosleep01","psxtmtest_single","Yes" "nanosleep - blocking","psxtmnanosleep02","psxtmtest_blocking","Yes"