<assertions>
  <assertion id="1" tag="ref:XSH6:39052:39053">
sem_wait will lock the unlocked semaphore and decrement the semaphore
value by one.
  </assertion>
  <assertion id="3" tag="ref:XSH6:39056:39057">
sem_wait: This test case verifies that the semaphore shall remain
locked until the sem_post is executed and return successfully.
  </assertion>
  <assertion id="4" tag="ref:XSH6:33058:39058">
sem_wait hangs when it tries to lock a locked semaphore, and then killed
by sending a kill signal (SIGKILL).
  </assertion>
  <assertion id="5" tag="ref:XSH6:39066:39067">
errno return EAGAIN: The semaphore can't be immediately locked by
sem_trywait when its already locked.
  </assertion>
  <assertion id="6" tag="ref:XSH6:39068:39068">
errno return EINVAL: the semaphore argument doesn't not refer to a valid
semaphore
  </assertion>
  <assertion id="7" tag="ref:XSH6:39071:39071">
errno return EINTR: a signal interrupted the waiting semaphore.
  </assertion>
  <assertion id="8" tag="ref:XSH6:39070:39070">
errno return EDEADLK: sem_wait/trywait will fail if a deadlock condition is
detected.
  </assertion>
  <assertion id="9" tag="ref:XSH6:39059:39063">
sem_wait/trywait return 0 on success and -1 of failure.
  </assertion>
  <assertion id="11" tag="ref:XSH6:39049:39050">
sem_trywait shall try to lock the unlocked semaphore and decrement
the semaphore value by one.
  </assertion>
  <assertion id="12" tag="ref:XSH6:39050:39051">
sem_trywait shall fail to lock a locked semaphore and try to decrement
the semaphore value by one.
  </assertion>
  <assertion id="13" tag="ref:XSH6TC2:40062:40064">
If the semaphore count is 0, the call blocks until the semphore can be locked
or the operation is interrupted by a signal.
  </assertion>
</assertions>
