
                      POSIX.1B TEST PROGRAMS
		      - - - - - - - - - - - -

The test programs in this directory exercise the Posix.1b functions.
The following sets of posix.1b functions are covered

	Message Queues
	Semaphores
	Shared Memory
	Memory Locking
	Scheduling
	Timers and Clocks

Use of message queues and semaphores with pthreads is also included.


A brief description of the test programs is given below. All test programs
can be run without (termed default behaviour below) any command line
arguments. Most programs can also be run with arguments to control their
behaviour.


TEST PROGRAMS
-------------

1. mqtest	- message queues with processes

	default - a single process creates message queue with a default
		name and geometry and sends/receives messages from the
		queue.

	arguments - can be used to specify the queue name, queue geometry,
		the number of messages to be sent/received, async
		notification and message queue attributes.

2. mqtest_sproc - queues with sprocs

	default - similar to mqtest, but two sprocs are created, one for
		sending messages and one for receving messages.
	arguments - queue geometry, number of messages to be sent/received,
		    number of pairs of sprocs created.

3. mqtest_pthread - queues with pthreads

	default - similar to mqtest_sproc, but pthreads are created instead
		  of sprocs.

	arguments - queue geometry, number of messages to be sent/received,
		    number of pairs of pthreads created.

4. mq_bench	- benchmark for message queues

	default - measures message transfer rate between a sender and
		  receiver process

	arguments - SVR4 queue/posix queues, queue geometry, number of
		    messages sent/received in each loop and number of
		    loops in each iteration, number of iterations,
		    contention (1 sender and 1 receiver process)/
		    no-contention (same process sends/receives) case. 


5. sem_bench	- benchmark for semaphores using sprocs
	
	default	- 2 sprocs post/wait on two unnamed semaphores
	
	arguments - arena/posix-named/posix-unnamed semaphore type, iteration
		    count

6. sem_sbench	- benchmark for semaphores using sprocs
	
	default	- 2 sprocs run post/wait test on posix-named, posix-unnamed,
		  arena and svr4 semaphores
	
	arguments - arena/svr4/posix-named/posix-unnamed semaphore type,
		    iteration count

7. sem_speed	- benchmark for semaphores (non-blocking case)
	
	default	- process executes post/wait ops in a loop; no blocking
		  occurs sem_wait is done after sem_post
	
	arguments - arena/svr4/posix-named/posix-unnamed semaphore type,
		    iteration count

8. sem_destroy	- test sem_destroy function
	
	default	- sem_destroy is called on a busy semaphore
	
9. sem_pbench	- benchmark for semaphores using processes
	
	default	- 2 processes post/wait on two unnamed semaphores
	
	arguments - posix-named/posix-unnamed semaphore type, iteration
		    count

10. sem_ptbench	- benchmark for unnamed semaphores using PTHREADS
	
	default	- 2 pthreads post/wait on two unnamed non-shared semaphores
	
	arguments - shared/non-shared semaphore type, iteration count

11. ptimer	- posix timer/clock test
	
	default	- executes clock and timer functions on the clocks
		  supported by IRIX.

12. ptimer_rtsched - posix timer performance
	
	default	- measures min, max and average value of intervals
		  at the timer goes off

13. mlocker	- memory locking test

	default	- locks 1MB of malloc'd memory, accesses and unlocks the mem
	
	arguments - test type (lockall, future-lock, autogrow, stack),
		    size of memory to be locked.

14. psched	- scheduling test

	default	- executes posix scheduling interfaces for the various
		  scheduling policies

15. sched_bench	- benchmark for context scheduling

	default	- measures context scheduling time betwee two sprocs
		  using sched_yield

	arguments - scheduling entity (process or sproc), loop count
		  scheduling policies

16. rtlocker	- realtime lock test

	default	- 2 sprocs execute lock/release ops on rtlock
		  using sched_yield

	arguments - number of sprocs created, loop count

