nsh> ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, Variable3, FALSE)
ostest_main: 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
ostest_main: Started user_main at PID=3
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 1e1a0 1e1a0
ordblks 2 2
mxordblk 15910 15910
uordblks 4bd0 4bd0
fordblks 195d0 195d0
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 1e1a0 1e1a0
ordblks 2 3
mxordblk 15910 15910
uordblks 4bd0 4bc0
fordblks 195d0 195e0
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 1e1a0 1e1a0
ordblks 3 3
mxordblk 15910 15910
uordblks 4bc0 4b80
fordblks 195e0 19620
user_main: setvbuf test
setvbuf_test: Test NO buffering
setvbuf_test: Using NO buffering
setvbuf_test: Test default FULL buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Test FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Test LINE buffering, buffer size 64
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 3 3
mxordblk 15910 15910
uordblks 4b80 4b80
fordblks 19620 19620
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 1e1a0 1e1a0
ordblks 3 3
mxordblk 15910 15910
uordblks 4b80 4b80
fordblks 19620 19620
user_main: task_restart test
Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=4
restart_main: Started with argc=4
restart_main: argv[0]=””
restart_main: argv[1]=”This is argument 1″
restart_main: argv[2]=”Argument 2 here”
restart_main: argv[3]=”Lastly, the 3rd argument”
restart_main: Variable=VarName has value=VarValue
restart_main: I am still here
restart_main: I am still here
restart_main: Started with argc=4
restart_main: argv[0]=””
restart_main: argv[1]=”This is argument 1″
restart_main: argv[2]=”Argument 2 here”
restart_main: argv[3]=”Lastly, the 3rd argument”
restart_main: Variable=VarName has value=VarValue
restart_main: Exiting
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 3 4
mxordblk 15910 15910
uordblks 4b80 6c90
fordblks 19620 17510
user_main: waitpid test
Test waitpid()
waitpid_start_child: Started waitpid_main at PID=5
waitpid_main: PID 5 Started
waitpid_start_child: Started waitpid_main at PID=6
waitpid_main: PID 6 Started
waitpid_start_child: Started waitpid_main at PID=7
waitpid_main: PID 7 Started
waitpid_test: Waiting for PID=5 with waitpid()
waitpid_main: PID 5 exitting with result=14
waitpid_test: PID 5 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=7 with waitpid()
waitpid_main: PID 6 exitting with result=14
waitpid_main: PID 7 exitting with result=14
waitpid_last: PASS: PID 7 waitpid succeeded with stat_loc=0e00
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 4 5
mxordblk 15910 118f0
uordblks 6c90 ae70
fordblks 17510 13330
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 1e1a0 1e1a0
ordblks 5 4
mxordblk 118f0 15910
uordblks ae70 5d80
fordblks 13330 18420
user_main: timed mutex test
mutex_test: Initializing mutex
mutex_test: Starting thread
pthread: Started
pthread: Waiting for lock or timeout
mutex_test: Unlocking
pthread: Got the lock
pthread: Waiting for lock or timeout
pthread: Got the timeout. Terminating
mutex_test: PASSED
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 4 3
mxordblk 15910 15910
uordblks 5d80 5490
fordblks 18420 18d10
user_main: pthread-specific data test
Starting thread
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 3 3
mxordblk 15910 15910
uordblks 5490 5490
fordblks 18d10 18d10
user_main: cancel test
cancel_test: Test 1a: Normal Cancellation
cancel_test: Starting thread
start_thread: Initializing mutex
start_thread: Initializing cond
start_thread: Starting thread
sem_waiter: Taking mutex
start_thread: Yielding
sem_waiter: Starting wait for condition
cancel_test: Canceling thread
cancel_test: Joining
cancel_test: waiter exited with result=0xffffffff
cancel_test: PASS thread terminated with PTHREAD_CANCELED
cancel_test: Test 2: Asynchronous Cancellation
… Skipped
cancel_test: Test 3: Cancellation 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
sem_waiter: Taking mutex
start_thread: Yielding
sem_waiter: Starting wait for condition
cancel_test: Canceling thread
cancel_test: Joining
cancel_test: PASS pthread_join failed with status=ESRCH
cancel_test: Test 5: 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
sem_waiter: Taking mutex
start_thread: Yielding
sem_waiter: Starting wait for condition
sem_waiter: Setting non-cancelable
cancel_test: Canceling thread
cancel_test: Joining
sem_waiter: Releasing mutex
sem_waiter: Setting cancelable
cancel_test: waiter exited with result=0xffffffff
cancel_test: PASS thread terminated with PTHREAD_CANCELED
cancel_test: Test 6: Cancel message queue wait
cancel_test: Starting thread (cancelable)
Skipped
cancel_test: Test 7: Cancel signal wait
cancel_test: Starting thread (cancelable)
Skipped
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 3 3
mxordblk 15910 15910
uordblks 5490 6c90
fordblks 18d10 17510
user_main: robust test
robust_test: Initializing mutex
robust_test: Starting thread
robust_waiter: Taking mutex
robust_waiter: Exiting with mutex
robust_test: Take the lock again
robust_test: Make the mutex consistent again.
robust_test: Take the lock again
robust_test: Joining
robust_test: waiter exited with result=0
robust_test: Test complete with nerrors=0
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 3 3
mxordblk 15910 15910
uordblks 6c90 6c90
fordblks 17510 17510
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
sem_test: Starting waiter thread 2
waiter_func: Thread 1 initial semaphore value = 0
sem_test: Set thread 2 priority to 128
waiter_func: Thread 1 waiting on semaphore
waiter_func: Thread 2 Started
sem_test: Starting poster thread 3
waiter_func: Thread 2 initial semaphore value = -1
sem_test: Set thread 3 priority to 64
waiter_func: Thread 2 waiting on semaphore
poster_func: Thread 3 started
poster_func: Thread 3 semaphore value = -2
poster_func: Thread 3 posting semaphore
waiter_func: Thread 1 awakened
poster_func: Thread 3 new semaphore value = -1
waiter_func: Thread 1 new semaphore value = -1
poster_func: Thread 3 semaphore value = -1
waiter_func: Thread 1 done
poster_func: Thread 3 posting semaphore
waiter_func: Thread 2 awakened
poster_func: Thread 3 new semaphore value = 0
waiter_func: Thread 2 new semaphore value = 0
poster_func: Thread 3 done
waiter_func: Thread 2 done
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 3 5
mxordblk 15910 15910
uordblks 6c90 6670
fordblks 17510 17b30
user_main: timed semaphore test
semtimed_test: Initializing semaphore to 0
semtimed_test: Waiting for two second timeout
semtimed_test: PASS: first test returned timeout
BEFORE: (946684877 sec, 14370000 nsec)
AFTER: (946684879 sec, 24370000 nsec)
semtimed_test: Starting poster thread
semtimed_test: Set thread 1 priority to 191
semtimed_test: Starting poster thread 3
semtimed_test: Set thread 3 priority to 64
semtimed_test: Waiting for two second timeout
poster_func: Waiting for 1 second
poster_func: Posting
semtimed_test: PASS: sem_timedwait succeeded
BEFORE: (946684879 sec, 24370000 nsec)
AFTER: (946684880 sec, 44370000 nsec)
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 5 3
mxordblk 15910 15910
uordblks 6670 5490
fordblks 17b30 18d10
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 1e1a0 1e1a0
ordblks 3 5
mxordblk 15910 15910
uordblks 5490 5490
fordblks 18d10 18d10
user_main: pthread_rwlock test
pthread_rwlock: Initializing rwlock
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 5 4
mxordblk 15910 15910
uordblks 5490 5d80
fordblks 18d10 18420
user_main: pthread_rwlock_cancel test
pthread_rwlock_cancel: Starting test
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 4 3
mxordblk 15910 15910
uordblks 5d80 4ba0
fordblks 18420 19600
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
timedwait_test: Joining
thread_waiter: Starting 5 second wait for condition
thread_waiter: pthread_cond_timedwait timed out
thread_waiter: Releasing mutex
thread_waiter: Exit with status 0x12345678
timedwait_test: waiter exited with result=0x12345678
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 3 3
mxordblk 15910 15910
uordblks 4ba0 5490
fordblks 19600 18d10
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 nerrors=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 1e1a0 1e1a0
ordblks 3 4
mxordblk 15910 13900
uordblks 5490 8de0
fordblks 18d10 153c0
user_main: timed message queue test
timedmqueue_test: Starting sender
sender_thread: Starting
timedmqueue_test: Waiting for sender to complete
sender_thread: mq_timedsend succeeded on msg 0
sender_thread: mq_timedsend succeeded on msg 1
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
timedmqueue_test: Waiting for receiver to complete
receiver_thread: mq_timedreceive succeeded on msg 3
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 1e1a0 1e1a0
ordblks 4 4
mxordblk 13900 15910
uordblks 8de0 6cf0
fordblks 153c0 174b0
user_main: sigprocmask test
sigprocmask_test: SUCCESS
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 4 4
mxordblk 15910 15910
uordblks 6cf0 6cf0
fordblks 174b0 174b0
user_main: signal handler test
sighand_test: Initializing semaphore to 0
sighand_test: Starting waiter task
sighand_test: Started waiter_main pid=41
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
sighand_test: Signaling pid=41 with signo=17 sigvalue=42
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 1e1a0 1e1a0
ordblks 4 4
mxordblk 15910 15910
uordblks 6cf0 6cf0
fordblks 174b0 174b0
user_main: nested signal handler test
signest_test: Starting signal waiter task at priority 101
signest_test: Started waiter_main pid=42
waiter_main: Waiter started
signest_test: Starting interfering task at priority 102
waiter_main: Setting signal mask
signest_test: Started interfere_main pid=43
interfere_main: Waiting on semaphore
waiter_main: Registering signal handler
waiter_main: Waiting on semaphore
signest_test: Simple case:
Total signalled 600 Odd=300 Even=300
Total handled 600 Odd=300 Even=300
Total nested 0 Odd=0 Even=0
signest_test: With task locking
Total signalled 1200 Odd=600 Even=600
Total handled 1200 Odd=600 Even=600
Total nested 0 Odd=0 Even=0
signest_test: With intefering thread
Total signalled 1800 Odd=900 Even=900
Total handled 1800 Odd=900 Even=900
Total nested 0 Odd=0 Even=0
signest_test: done
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 4 4
mxordblk 15910 13900
uordblks 6cf0 8f30
fordblks 174b0 15270
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
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
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
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
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
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 1e1a0 1e1a0
ordblks 4 4
mxordblk 13900 13900
uordblks 8f30 8f30
fordblks 15270 15270
user_main: round-robin scheduler test
rr_test: Set thread priority to 1
rr_test: Set thread policy to SCHED_RR
rr_test: Starting first get_primes_thread
First get_primes_thread: 44
rr_test: Starting second get_primes_thread
Second get_primes_thread: 45
rr_test: Waiting for threads to complete — this should take awhile
If RR scheduling is working, they should start and complete at
about the same time
get_primes_thread id=1 started, looking for primes < 10000, doing 10 run(s)
get_primes_thread id=2 started, looking for primes < 10000, doing 10 run(s)
get_primes_thread id=1 finished, found 1230 primes, last one was 9973
get_primes_thread id=2 finished, found 1230 primes, last one was 9973
rr_test: Done
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 4 5
mxordblk 13900 15910
uordblks 8f30 5f30
fordblks 15270 18270
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 4 started
barrier_test: Thread 4 created
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 0 calling pthread_barrier_wait()
barrier_func: Thread 1 calling pthread_barrier_wait()
barrier_func: Thread 2 calling pthread_barrier_wait()
barrier_func: Thread 3 calling pthread_barrier_wait()
barrier_func: Thread 4 calling pthread_barrier_wait()
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 7 done
barrier_func: Thread 0 done
barrier_func: Thread 1 done
barrier_func: Thread 2 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_func: Thread 3 done
barrier_func: Thread 4 done
barrier_test: Thread 3 completed with result=0
barrier_test: Thread 4 completed with result=0
barrier_func: Thread 5 done
barrier_func: Thread 6 done
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 1e1a0 1e1a0
ordblks 5 8
mxordblk 15910 148f0
uordblks 5f30 94d0
fordblks 18270 14cd0
user_main: vfork() test
vfork_test: Child 58 ran successfully
Final memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1e1a0 1e1a0
ordblks 2 5
mxordblk 15910 15910
uordblks 4bd0 6e50
fordblks 195d0 17350
user_main: Exiting
ostest_main: Exiting with status 0
nsh>