This is the output from the z16f target from January 31, 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ While all tests pass per this output, my impression is that some of the timed delays in during execution of the test were not correct and I suspect some system timing issues. stdio_test: write fd=1 stdio_test: write fd=2 stdio_test: Standard I/O Check: printf user_start: putenv(Variable1=BadValue3) user_start: setenv(Variable1, GoodValue1, TRUE) user_start: setenv(Variable2, BadValue1, FALSE) user_start: setenv(Variable2, GoodValue2, TRUE) user_start: setenv(Variable3, Variable3, FALSE) user_start: setenv(Variable3, Variable3, FALSE) show_variable: Variable=Variable1 has value=GoodValue1 show_variable: Variable=Variable2 has value=GoodValue2 show_variable: Variable=Variable3 has value=GoodValue3 user_start: Started user_main at PID=2 stdio_test: Standard I/O Check: fprintf to stderr user_main: Begin argument test user_main: Started with argc=5 user_main: argv[0]="" user_main: argv[1]="Arg1" user_main: argv[2]="Arg2" user_main: argv[3]="Arg3" user_main: argv[4]="Arg4" End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 2 2 mxordblk 76b20 76b20 uordblks 33d0 33d0 fordblks 78180 78180 show_variable: Variable=Variable1 has value=GoodValue1 show_variable: Variable=Variable2 has value=GoodValue2 show_variable: Variable=Variable3 has value=GoodValue3 show_variable: Variable=Variable1 has no value show_variable: Variable=Variable2 has value=GoodValue2 show_variable: Variable=Variable3 has value=GoodValue3 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 2 3 mxordblk 76b20 76b20 uordblks 33d0 33c0 fordblks 78180 78190 show_variable: Variable=Variable1 has no value show_variable: Variable=Variable2 has no value show_variable: Variable=Variable3 has no value End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 33c0 3380 fordblks 78190 781d0 user_main: /dev/null test dev_null: Read 0 bytes from /dev/null dev_null: Wrote 1024 bytes to /dev/null End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 3380 3380 fordblks 781d0 781d0 user_main: mutex test Initializing mutex Starting thread 1 Starting thread 2 Thread1 Thread2 Loops 32 32 Errors 0 0 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 3380 3380 fordblks 781d0 781d0 user_main: cancel test cancel_test: Test 1: Normal Cancelation cancel_test: Starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread thread_waiter: Taking mutex thread_waiter: Starting wait for condition start_thread: Yielding cancel_test: Canceling thread cancel_test: Joining cancel_test: waiter exited with result=ffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED cancel_test: Test 2: Cancelation of detached thread cancel_test: Re-starting thread restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread thread_waiter: Taking mutex thread_waiter: Starting wait for condition start_thread: Yielding cancel_test: Canceling thread cancel_test: Joining cancel_test: PASS pthread_join failed with status=ESRCH cancel_test: Test 3: Non-cancelable threads cancel_test: Re-starting thread (non-cancelable) restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread thread_waiter: Taking mutex thread_waiter: Starting wait for condition thread_waiter: Setting non-cancelable start_thread: Yielding cancel_test: Canceling thread cancel_test: Joining thread_waiter: Releasing mutex thread_waiter: Setting cancelable cancel_test: waiter exited with result=ffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 3380 3380 fordblks 781d0 781d0 user_main: semaphore test sem_test: Initializing semaphore to 0 sem_test: Starting waiter thread 1 sem_test: Set thread 1 priority to 191 waiter_func: Thread 1 Started waiter_func: Thread 1 initial semaphore value = 0 waiter_func: Thread 1 waiting on semaphore sem_test: Starting waiter thread 2 sem_test: Set thread 2 priority to 128 waiter_func: Thread 2 Started waiter_func: Thread 2 initial semaphore value = -1 waiter_func: Thread 2 waiting on semaphore sem_test: Starting poster thread 3 sem_test: Set thread 3 priority to 64 poster_func: Thread 3 started poster_func: Thread 3 semaphore value = -2 poster_func: Thread 3 posting semaphore waiter_func: Thread 1 awakened waiter_func: Thread 1 new semaphore value = -1 waiter_func: Thread 1 done poster_func: Thread 3 new semaphore value = -1 poster_func: Thread 3 semaphore value = -1 poster_func: Thread 3 posting semaphore waiter_func: Thread 2 awakened waiter_func: Thread 2 new semaphore value = 0 waiter_func: Thread 2 done poster_func: Thread 3 new semaphore value = 0 poster_func: Thread 3 done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 3380 3380 fordblks 781d0 781d0 user_main: condition variable test cond_test: Initializing mutex cond_test: Initializing cond cond_test: Starting waiter cond_test: Set thread 1 priority to 128 waiter_thread: Started cond_test: Starting signaler cond_test: Set thread 2 priority to 64 thread_signaler: Started thread_signaler: Terminating cond_test: signaler terminated, now cancel the waiter cond_test: Waiter Signaler cond_test: Loops 32 32 cond_test: Errors 0 0 cond_test: cond_test: 0 times, waiter did not have to wait for data cond_test: 0 times, data was already available when the signaler run cond_test: 0 times, the waiter was in an unexpected state when the signaler ran End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 3380 3380 fordblks 781d0 781d0 user_main: timed wait test thread_waiter: Initializing mutex timedwait_test: Initializing cond timedwait_test: Starting waiter timedwait_test: Set thread 2 priority to 177 thread_waiter: Taking mutex thread_waiter: Starting 5 second wait for condition timedwait_test: Joining tcb=0x8057d0 sigdeliver=0x13046 rtcb=0x8000c8 current_regs=0xffffbf7a rtcb=8057d0 sigdeliver=13046 sigpendactionq.head=0 Resuming thread_waiter: pthread_cond_timedwait timed out thread_waiter: Releasing mutex thread_waiter: Exit with status 0x12345678 timedwait_test: waiter exited with result=12345678 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 3380 3380 fordblks 781d0 781d0 user_main: message queue test mqueue_test: Starting receiver mqueue_test: Set receiver priority to 128 receiver_thread: Starting mqueue_test: Starting sender mqueue_test: Set sender thread priority to 64 mqueue_test: Waiting for sender to complete sender_thread: Starting receiver_thread: mq_receive succeeded on msg 0 sender_thread: mq_send succeeded on msg 0 receiver_thread: mq_receive succeeded on msg 1 sender_thread: mq_send succeeded on msg 1 receiver_thread: mq_receive succeeded on msg 2 sender_thread: mq_send succeeded on msg 2 receiver_thread: mq_receive succeeded on msg 3 sender_thread: mq_send succeeded on msg 3 receiver_thread: mq_receive succeeded on msg 4 sender_thread: mq_send succeeded on msg 4 receiver_thread: mq_receive succeeded on msg 5 sender_thread: mq_send succeeded on msg 5 receiver_thread: mq_receive succeeded on msg 6 sender_thread: mq_send succeeded on msg 6 receiver_thread: mq_receive succeeded on msg 7 sender_thread: mq_send succeeded on msg 7 receiver_thread: mq_receive succeeded on msg 8 sender_thread: mq_send succeeded on msg 8 receiver_thread: mq_receive succeeded on msg 9 sender_thread: mq_send succeeded on msg 9 sender_thread: returning ntcb=0x8057d0 sigdeliver=0x13046 rtcb=0x806e30 current_regs=0x0 rtcb=8057d0 sigdeliver=13046 sigpendactionq.head=0 Resuming errors=0 mqueue_test: Killing receiver receiver_thread: mq_receive interrupted! receiver_thread: returning nerrors=0 mqueue_test: Canceling receiver mqueue_test: receiver has already terminated End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 3380 3380 fordblks 781d0 781d0 user_main: timed message queue test timedmqueue_test: Starting sender sender_thread: Starting sender_thread: mq_timedsend succeeded on msg 0 sender_thread: mq_timedsend succeeded on msg 1 timedmqueue_test: Waiting for sender to complete sender_thread: mq_timedsend succeeded on msg 2 sender_thread: mq_timedsend succeeded on msg 3 sender_thread: mq_timedsend succeeded on msg 4 sender_thread: mq_timedsend succeeded on msg 5 sender_thread: mq_timedsend succeeded on msg 6 sender_thread: mq_timedsend succeeded on msg 7 sender_thread: mq_timedsend succeeded on msg 8 sender_thread: mq_timedsend 9 timed out as expected sender_thread: returning nerrors=0 timedmqueue_test: Starting receiver receiver_thread: Starting receiver_thread: mq_timedreceive succeeded on msg 0 receiver_thread: mq_timedreceive succeeded on msg 1 receiver_thread: mq_timedreceive succeeded on msg 2 receiver_thread: mq_timedreceive succeeded on msg 3 timedmqueue_test: Waiting for receiver to complete receiver_thread: mq_timedreceive succeeded on msg 4 receiver_thread: mq_timedreceive succeeded on msg 5 receiver_thread: mq_timedreceive succeeded on msg 6 receiver_thread: mq_timedreceive succeeded on msg 7 receiver_thread: mq_timedreceive succeeded on msg 8 receiver_thread: Receive 9 timed out as expected receiver_thread: returning nerrors=0 timedmqueue_test: Test complete End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 3 mxordblk 76b20 76b20 uordblks 3380 3380 fordblks 781d0 781d0 user_main: signal handler test sighand_test: Initializing semaphore to 0 sighand_test: Starting waiter task sighand_test: Started waiter_main pid=20 waiter_main: Waiter started waiter_main: Unmasking signal 17 waiter_main: Registering signal handler waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0 waiter_main: Waiting on semaphore tcb=0x8057d0 sigdeliver=0x13046 rtcb=0x806e30 current_regs=0x0 sighand_test: Signaling pid=20 with signo=17 sigvalue=42 rtcb=8057d0 sigdeliver=13046 sigpendactionq.head=804b10 Resuming wakeup_action: Received signal 17 wakeup_action: sival_int=42 wakeup_action: si_code=1 wakeup_action: ucontext=0 waiter_main: sem_wait() successfully interrupted by signal waiter_main: done sighand_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 3 4 mxordblk 76b20 76b20 uordblks 3380 35c0 fordblks 781d0 77f90 user_main: POSIX timer test timer_test: Initializing semaphore to 0 timer_test: Unmasking signal 17 timer_test: Registering signal handler timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0 timer_test: Creating timer timer_test: Starting timer timer_test: Waiting on semaphore tcb=0x806e30 sigdeliver=0x13046 rtcb=0x8000c8 current_regs=0xffffbf7a rtcb=806e30 sigdeliver=13046 sigpendactionq.head=804b23 Resuming timer_expiration: Received signal 17 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=1 timer_test: Waiting on semaphore tcb=0x806e30 sigdeliver=0x13046 rtcb=0x8000c8 current_regs=0xffffbf7a rtcb=806e30 sigdeliver=13046 sigpendactionq.head=804b36 Resuming timer_expiration: Received signal 17 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=2 timer_test: Waiting on semaphore tcb=0x806e30 sigdeliver=0x13046 rtcb=0x8000c8 current_regs=0xffffbf7a rtcb=806e30 sigdeliver=13046 sigpendactionq.head=804b49 Resuming timer_expiration: Received signal 17 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=3 timer_test: Waiting on semaphore tcb=0x806e30 sigdeliver=0x13046 rtcb=0x8000c8 current_regs=0xffffbf76 rtcb=806e30 sigdeliver=13046 sigpendactionq.head=804b5c Resuming timer_expiration: Received signal 17 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=4 timer_test: Waiting on semaphore tcb=0x806e30 sigdeliver=0x13046 rtcb=0x8000c8 current_regs=0xffffbf66 rtcb=806e30 sigdeliver=13046 sigpendactionq.head=804b6f Resuming timer_expiration: Received signal 17 timer_expiration: sival_int=42 timer_expiration: si_code=2 (SI_TIMER) timer_expiration: ucontext=0 timer_test: sem_wait() successfully interrupted by signal timer_test: g_nsigreceived=5 timer_test: Deleting timer timer_test: done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 4 4 mxordblk 76b20 76b20 uordblks 35c0 35c0 fordblks 77f90 77f90 user_main: round-robin scheduler test rr_test: Starting sieve1 thread rr_test: Set thread priority to 1 rr_test: Set thread policty to SCHED_RR rr_test: Starting sieve1 thread sieve1 started rr_test: Waiting for sieves to complete -- this should take awhile rr_test: If RR scheduling is working, they should start and complete at rr_test: about the same time sieve2 started sieve1 finished sieve2 finished rr_test: Done End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 4 4 mxordblk 76b20 76b20 uordblks 35c0 35c0 fordblks 77f90 77f90 user_main: barrier test barrier_test: Initializing barrier barrier_func: Thread 0 started barrier_test: Thread 0 created barrier_func: Thread 1 started barrier_test: Thread 1 created barrier_func: Thread 2 started barrier_test: Thread 2 created barrier_func: Thread 3 started barrier_test: Thread 3 created barrier_func: Thread 0 calling pthread_barrier_wait() barrier_func: Thread 1 calling pthread_barrier_wait() barrier_func: Thread 2 calling pthread_barrier_wait() barrier_func: Thread 4 started barrier_test: Thread 4 created barrier_func: Thread 3 calling pthread_barrier_wait() barrier_func: Thread 4 calling pthread_barrier_wait() barrier_func: Thread 5 started barrier_test: Thread 5 created barrier_func: Thread 6 started barrier_test: Thread 6 created barrier_func: Thread 7 started barrier_test: Thread 7 created barrier_func: Thread 5 calling pthread_barrier_wait() barrier_func: Thread 6 calling pthread_barrier_wait() barrier_func: Thread 7 calling pthread_barrier_wait() barrier_func: Thread 7, back with status=PTHREAD_BARRIER_SERIAL_THREAD (I AM SPECIAL) barrier_func: Thread 0, back with status=0 (I am not special) barrier_func: Thread 1, back with status=0 (I am not special) barrier_func: Thread 2, back with status=0 (I am not special) barrier_func: Thread 3, back with status=0 (I am not special) barrier_func: Thread 4, back with status=0 (I am not special) barrier_func: Thread 5, back with status=0 (I am not special) barrier_func: Thread 6, back with status=0 (I am not special) barrier_func: Thread 2 done barrier_func: Thread 7 done barrier_func: Thread 0 done barrier_func: Thread 1 done barrier_func: Thread 6 done barrier_func: Thread 3 done barrier_func: Thread 4 done barrier_func: Thread 5 done barrier_test: Thread 0 completed with result=0 barrier_test: Thread 1 completed with result=0 barrier_test: Thread 2 completed with result=0 barrier_test: Thread 3 completed with result=0 barrier_test: Thread 4 completed with result=0 barrier_test: Thread 5 completed with result=0 barrier_test: Thread 6 completed with result=0 barrier_test: Thread 7 completed with result=0 End of test memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 4 4 mxordblk 76b20 76b20 uordblks 35c0 35c0 fordblks 77f90 77f90 Final memory usage: VARIABLE BEFORE AFTER ======== ======== ======== arena 7b550 7b550 ordblks 2 4 mxordblk 76b20 76b20 uordblks 33d0 35c0 fordblks 78180 77f90 user_main: Exitting