+1 from me The release was tested on Sony Spresense board
In this case I will close the vote and document the issue regarding Ox64. Thanks for testing and voting the release //Alin On Sat, Jan 13, 2024 at 3:10 AM Tomek CEDRO <to...@cedro.info> wrote: > On Wed, Jan 10, 2024 at 12:10 PM Alin Jerpelea wrote: > > Hello all, > > Apache NuttX 12.4.0 RC0 has been staged under [1] and it's > > time to vote on accepting it for release. Voting will be open for 72hr. > > Hello beautiful world :-) > > +1 here with details below :-) > > ALL THE BEST IN NEW YEAR! :-) > > Tomek > > > HOST: > FreeBSD octagon 13.2-RELEASE-p8 FreeBSD 13.2-RELEASE-p8 GENERIC amd64 > > TARGETS: > 1. ESP32. > 2. ESP32-C3. > 3. ESP32-S2. > 4. ESP32-S3. > 5.SIM. > > > === ESP32 === > > % xtensa-esp32-elf-cc --version > xtensa-esp32-elf-cc (crosstool-NG esp-2021r2-patch5) 8.4.0 > Copyright (C) 2018 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > % /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:nsh > 3,31s real 1,70s user 1,66s sys > > % /usr/bin/time -h gmake -j8 > 19,15s real 58,86s user 44,09s sys > > % /usr/bin/time -h gmake flash > 11,48s real 2,02s user 1,40s sys > > % cu -l /dev/cuaU0 -s 115200 > Connected > rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) > configsip: 0, SPIWP:0xee > clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 > mode:DIO, clock div:2 > load:0x3fff0030,len:4540 > ho 0 tail 12 room 4 > load:0x40078000,len:12344 > ho 0 tail 12 room 4 > load:0x40080400,len:4124 > entry 0x40080680 > > NuttShell (NSH) NuttX-12.4.0 > nsh> uname -a > NuttX 12.4.0 96c2707737 Jan 13 2024 01:24:16 xtensa esp32-devkitc > nsh> help > help usage: help [-v] [<cmd>] > > . cp exit mkrd set unset > [ cmp false mount sleep uptime > ? dirname fdinfo mv source usleep > alias dd free pidof test xd > unalias df help printf time > basename dmesg hexdump ps true > break echo kill pwd truncate > cat env ls rm uname > cd exec mkdir rmdir umount > > Builtin Apps: > nsh sh > > > % /usr/bin/time -h gmake clean distclean > 8,53s real 4,27s user 4,37s sys > > % /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:coremark > 3,30s real 1,59s user 1,75s sys > > % /usr/bin/time -h gmake -j8 > 19,31s real 1m0,84s user 42,71s sys > > % /usr/bin/time -h gmake flash > 10,48s real 1,63s user 1,05s sys > > % cu -l /dev/cuaU0 -s 115200 > Connected > rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) > configsip: 0, SPIWP:0xee > clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 > mode:DIO, clock div:2 > load:0x3fff0030,len:4540 > ho 0 tail 12 room 4 > load:0x40078000,len:12344 > ho 0 tail 12 room 4 > load:0x40080400,len:4124 > entry 0x40080680 > Running CoreMark... > 2K performance run parameters for coremark. > CoreMark Size : 666 > Total ticks : 1218 > Total time (secs): 12.180000 > Iterations/Sec : 985.221675 > Iterations : 12000 > Compiler version : GCC8.4.0 > Compiler flags : -O3 -fno-strict-aliasing -fomit-frame-pointer > -ffunction-sections -fdata-sections > Parallel PThreads : 2 > Memory location : HEAP > seedcrc : 0xe9f5 > [0]crclist : 0xe714 > [1]crclist : 0xe714 > [0]crcmatrix : 0x1fd7 > [1]crcmatrix : 0x1fd7 > [0]crcstate : 0x8e3a > [1]crcstate : 0x8e3a > [0]crcfinal : 0xa14c > [1]crcfinal : 0xa14c > Correct operation validated. See README.md for run and reporting rules. > CoreMark 1.0 : 985.221675 / GCC8.4.0 -O3 -fno-strict-aliasing > -fomit-frame-pointer -ffunction-sections -fdata-sections / HEAP / > 2:PThreads > > % /usr/bin/time -h gmake clean distclean > 8,21s real 3,83s user 4,48s sys > > % /usr/bin/time -h ./tools/configure.sh -B esp32-devkitc:ostest > 3,34s real 1,66s user 1,71s sys > > % /usr/bin/time -h gmake -j8 > 20,00s real 1m2,34s user 45,68s sys > > % /usr/bin/time -h gmake flash > 14,20s real 2,24s user 1,49s sys > > % cu -l /dev/cuaU0 -s 115200 > Connected > rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) > configsip: 0, SPIWP:0xee > clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 > mode:DIO, clock div:2 > load:0x3fff0030,len:4540 > ho 0 tail 12 room 4 > load:0x40078000,len:12344 > ho 0 tail 12 room 4 > load:0x40080400,len:4124 > entry 0x40080680 > > NuttShell (NSH) NuttX-12.4.0 > nsh> help > help usage: help [-v] [<cmd>] > > . cp exit mkrd set unset > [ cmp false mount sleep uptime > ? dirname fdinfo mv source usleep > alias dd free pidof test xd > unalias df help printf time > basename dmesg hexdump ps true > break echo kill pwd truncate > cat env ls rm uname > cd exec mkdir rmdir umount > > Builtin Apps: > nsh ostest sh > 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, GoodValue3, FALSE) > ostest_main: setenv(Variable3, BadValue2, 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]="ostest" > 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 4f3f8 4f3f8 > ordblks 3 3 > mxordblk 2d418 2d418 > uordblks 4c38 4c38 > fordblks 4a7c0 4a7c0 > > user_main: getopt() test > getopt(): Simple test > getopt(): Invalid argument > getopt(): Missing optional argument > getopt_long(): Simple test > getopt_long(): No short options > getopt_long(): Argument for --option=argument > getopt_long(): Invalid long option > getopt_long(): Mixed long and short options > getopt_long(): Invalid short option > getopt_long(): Missing optional arguments > getopt_long_only(): Mixed long and short options > getopt_long_only(): Single hyphen long options > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 3 3 > mxordblk 2d418 2d418 > uordblks 4c38 4c38 > fordblks 4a7c0 4a7c0 > 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 4f3f8 4f3f8 > ordblks 3 4 > mxordblk 2d418 2d418 > uordblks 4c38 4c18 > fordblks 4a7c0 4a7e0 > 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 4f3f8 4f3f8 > ordblks 4 5 > mxordblk 2d418 2d418 > uordblks 4c18 4bb0 > fordblks 4a7e0 4a848 > > 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 4f3f8 4f3f8 > ordblks 5 5 > mxordblk 2d418 2d418 > uordblks 4bb0 4bb0 > fordblks 4a848 4a848 > > 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 4f3f8 4f3f8 > ordblks 5 5 > mxordblk 2d418 2d418 > uordblks 4bb0 4bb0 > fordblks 4a848 4a848 > > user_main: FPU test > Starting task FPU#1 > fpu_test: Started task FPU#1 at PID=4 > FPU#1: pass 1 > Starting task FPU#2 > fpu_test: Started task FPU#2 at PID=5 > FPU#2: pass 1 > FPU#1: pass 2 > FPU#2: pass 2 > FPU#1: pass 3 > FPU#2: pass 3 > FPU#1: pass 4 > FPU#2: pass 4 > FPU#1: pass 5 > FPU#2: pass 5 > FPU#1: pass 6 > FPU#2: pass 6 > FPU#1: pass 7 > FPU#2: pass 7 > FPU#1: pass 8 > FPU#2: pass 8 > FPU#1: pass 9 > FPU#2: pass 9 > FPU#1: pass 10 > FPU#2: pass 10 > FPU#1: pass 11 > FPU#2: pass 11 > FPU#1: pass 12 > FPU#2: pass 12 > FPU#1: pass 13 > FPU#2: pass 13 > FPU#1: pass 14 > FPU#2: pass 14 > FPU#1: pass 15 > FPU#2: pass 15 > FPU#1: pass 16 > FPU#2: pass 16 > FPU#1: Succeeded > FPU#2: Succeeded > fpu_test: Returning > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 5 8 > mxordblk 2d418 2d418 > uordblks 4bb0 5d20 > fordblks 4a848 496d8 > > user_main: task_restart test > > Test task_restart() > restart_main: setenv(VarName, VarValue, TRUE) > restart_main: Started restart_main at PID=6 > restart_main: Started with argc=4 > restart_main: argv[0]="ostest" > 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 restart_main at PID=6 > restart_main: Started with argc=4 > restart_main: argv[0]="ostest" > 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: Started with argc=4 > restart_main: argv[0]="ostest" > 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 4f3f8 4f3f8 > ordblks 8 5 > mxordblk 2d418 2d418 > uordblks 5d20 6c98 > fordblks 496d8 48760 > > user_main: waitpid test > > Test waitpid() > waitpid_start_child: Started waitpid_main at PID=7 > waitpid_main: PID 7 Started > waitpid_start_child: Started waitpid_main at PID=12 > waitpid_main: PID 12 Started > waitpid_start_child: Started waitpid_main at PID=13 > waitpid_main: PID 13 Started > waitpid_test: Waiting for PID=7 with waitpid() > waitpid_main: PID 7 exitting with result=14 > waitpid_test: PID 7 waitpid succeeded with stat_loc=0e00 > waitpid_last: Waiting for PID=13 with waitpid() > waitpid_main: PID 12 exitting with result=14 > waitpid_main: PID 13 exitting with result=14 > waitpid_last: PASS: PID 13 waitpid succeeded with stat_loc=0e00 > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 5 7 > mxordblk 2d418 2d418 > uordblks 6c98 adf8 > fordblks 48760 44600 > > 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 4f3f8 4f3f8 > ordblks 7 5 > mxordblk 2d418 2d418 > uordblks adf8 54a8 > fordblks 44600 49f50 > > 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 4f3f8 4f3f8 > ordblks 5 4 > mxordblk 2d418 2d418 > uordblks 54a8 54a8 > fordblks 49f50 49f50 > > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 4f3f8 4f3f8 > ordblks 4 4 > mxordblk 2d418 2d418 > uordblks 54a8 6ca8 > fordblks 49f50 48750 > > 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 4f3f8 4f3f8 > ordblks 4 4 > mxordblk 2d418 2d418 > uordblks 6ca8 6ca8 > fordblks 48750 48750 > > 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 > sem_test: Starting waiter thread 2 > waiter_func: Thread 1 waiting on semaphore > 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 > poster_func: Thread 3 new semaphore value = 0 > waiter_func: Thread 2 done > poster_func: Thread 3 done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 4 5 > mxordblk 2d418 2d418 > uordblks 6ca8 54a8 > fordblks 48750 49f50 > > 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: (56 sec, 830000000 nsec) > AFTER: (58 sec, 840000000 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: (58 sec, 840000000 nsec) > AFTER: (59 sec, 850000000 nsec) > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 5 4 > mxordblk 2d418 2d418 > uordblks 54a8 54a8 > fordblks 49f50 49f50 > > 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 4f3f8 4f3f8 > ordblks 4 5 > mxordblk 2d418 2d418 > uordblks 54a8 54a8 > fordblks 49f50 49f50 > > user_main: pthread_exit() test > pthread_exit_test: Started pthread_exit_main at PID=39 > pthread_exit_main 39: Starting pthread_exit_thread > pthread_exit_main 39: Sleeping for 5 seconds > pthread_exit_thread 44: Sleeping for 10 second > pthread_exit_main 39: Calling pthread_exit() > pthread_exit_thread 44: Still running... > pthread_exit_thread 44: Exiting > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 5 5 > mxordblk 2d418 2d418 > uordblks 54a8 54a8 > fordblks 49f50 49f50 > > user_main: pthread_rwlock test > pthread_rwlock: Initializing rwlock > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 5 5 > mxordblk 2d418 2d418 > uordblks 54a8 54a8 > fordblks 49f50 49f50 > > user_main: pthread_rwlock_cancel test > pthread_rwlock_cancel: Starting test > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 5 4 > mxordblk 2d418 2d418 > uordblks 54a8 4be8 > fordblks 49f50 4a810 > > 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 4f3f8 4f3f8 > ordblks 4 4 > mxordblk 2d418 2d418 > uordblks 4be8 54a8 > fordblks 4a810 49f50 > > 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 4f3f8 4f3f8 > ordblks 4 4 > mxordblk 2d418 2d418 > uordblks 54a8 6d00 > fordblks 49f50 486f8 > > user_main: timed message queue test > timedmqueue_test: Starting sender > timedmqueue_test: Waiting for sender to complete > sender_thread: Starting > 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 > timedmqueue_test: Waiting for receiver to complete > receiver_thread: Starting > receiver_thread: mq_timedreceive succeed on msg 0 > receiver_thread: mq_timedreceive succeed on msg 1 > receiver_thread: mq_timedreceive succeed on msg 2 > receiver_thread: mq_timedreceive succeed on msg 3 > receiver_thread: mq_timedreceive succeed on msg 4 > receiver_thread: mq_timedreceive succeed on msg 5 > receiver_thread: mq_timedreceive succeed on msg 6 > receiver_thread: mq_timedreceive succeed on msg 7 > receiver_thread: mq_timedreceive succeed 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 4f3f8 4f3f8 > ordblks 4 5 > mxordblk 2d418 2d418 > uordblks 6d00 6d30 > fordblks 486f8 486c8 > > user_main: sigprocmask test > sigprocmask_test: SUCCESS > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 5 5 > mxordblk 2d418 2d418 > uordblks 6d30 6d30 > fordblks 486c8 486c8 > > user_main: signal handler test > sighand_test: Initializing semaphore to 0 > sighand_test: Starting waiter task > sighand_test: Started waiter_main pid=68 > waiter_main: Waiter started > waiter_main: Unmasking signal 32 > waiter_main: Registering signal handler > waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 > waiter_main: Waiting on semaphore > sighand_test: Signaling pid=68 with signo=32 sigvalue=42 > waiter_main: sem_wait() successfully interrupted by signal > waiter_main: done > sighand_test: done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 5 7 > mxordblk 2d418 2d418 > uordblks 6d30 6d98 > fordblks 486c8 48660 > > user_main: nested signal handler test > signest_test: Starting signal waiter task at priority 101 > waiter_main: Waiter started > waiter_main: Setting signal mask > waiter_main: Registering signal handler > signest_test: Started waiter_main pid=69 > waiter_main: Waiting on semaphore > signest_test: Starting interfering task at priority 102 > interfere_main: Waiting on semaphore > signest_test: Started interfere_main pid=70 > signest_test: Simple case: > Total signalled 1240 Odd=620 Even=620 > Total handled 1240 Odd=620 Even=620 > Total nested 0 Odd=0 Even=0 > signest_test: With task locking > Total signalled 2480 Odd=1240 Even=1240 > Total handled 2480 Odd=1240 Even=1240 > Total nested 0 Odd=0 Even=0 > signest_test: With intefering thread > Total signalled 3720 Odd=1860 Even=1860 > Total handled 3720 Odd=1860 Even=1860 > Total nested 0 Odd=0 Even=0 > signest_test: done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 7 7 > mxordblk 2d418 2d418 > uordblks 6d98 9550 > fordblks 48660 45ea8 > > user_main: POSIX timer test > timer_test: Initializing semaphore to 0 > timer_test: Unmasking signal 32 > timer_test: Registering signal handler > timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 > timer_test: Creating timer > timer_test: Starting timer > timer_test: Waiting on semaphore > timer_expiration: Received signal 32 > 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 32 > 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 32 > 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 32 > 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 32 > 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 4f3f8 4f3f8 > ordblks 7 7 > mxordblk 2d418 2d418 > uordblks 9550 9550 > fordblks 45ea8 45ea8 > > 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: 71 > rr_test: Starting second get_primes_thread > Second get_primes_thread: 76 > 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 4f3f8 4f3f8 > ordblks 7 7 > mxordblk 2d418 2d418 > uordblks 9550 6570 > fordblks 45ea8 48e88 > > user_main: barrier test > barrier_test: Initializing barrier > barrier_test: Thread 0 created > barrier_test: Thread 1 created > barrier_test: Thread 2 created > barrier_test: Thread 3 created > barrier_func: Thread 0 started > barrier_func: Thread 1 started > barrier_func: Thread 2 started > barrier_func: Thread 3 started > barrier_test: Thread 4 created > barrier_func: Thread 4 started > barrier_test: Thread 5 created > barrier_func: Thread 5 started > barrier_test: Thread 6 created > barrier_func: Thread 6 started > barrier_test: Thread 7 created > barrier_func: Thread 7 started > 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 4f3f8 4f3f8 > ordblks 7 12 > mxordblk 2d418 2d418 > uordblks 6570 5cf8 > fordblks 48e88 49700 > > user_main: setjmp test > setjmp_test: Initializing jmp_buf > setjmp_test: Try jump > setjmp_test: Jump succeed > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 12 12 > mxordblk 2d418 2d418 > uordblks 5cf8 5cf8 > fordblks 49700 49700 > > user_main: scheduler lock test > sched_lock: Starting lowpri_thread at 97 > sched_lock: Set lowpri_thread priority to 97 > sched_lock: Starting highpri_thread at 98 > sched_lock: Set highpri_thread priority to 98 > sched_lock: Waiting... > sched_lock: PASSED No pre-emption occurred while scheduler was locked. > sched_lock: Starting lowpri_thread at 97 > sched_lock: Set lowpri_thread priority to 97 > sched_lock: Starting highpri_thread at 98 > sched_lock: Set highpri_thread priority to 98 > sched_lock: Waiting... > sched_lock: PASSED No pre-emption occurred while scheduler was locked. > sched_lock: Finished > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 12 10 > mxordblk 2d418 2d418 > uordblks 5cf8 5cf8 > fordblks 49700 49700 > > Final memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4f3f8 4f3f8 > ordblks 3 10 > mxordblk 2d418 2d418 > uordblks 4c38 5cf8 > fordblks 4a7c0 49700 > user_main: Exiting > ostest_main: Exiting with status 0 > nsh> > > % /usr/bin/time -h gmake clean distclean > 8,77s real 4,09s user 4,76s sys > > > === ESP32-S2 === > > % riscv32-esp-elf-gcc -v > Using built-in specs. > COLLECT_GCC=riscv32-esp-elf-gcc > > COLLECT_LTO_WRAPPER=/usr/home/cederom/.espressif/tools/riscv32-esp-elf/esp-2021r2-patch5-8.4.0/riscv32-esp-elf/bin/../libexec/gcc/riscv32-esp-elf/8.4.0/lto-wrapper > Target: riscv32-esp-elf > Configured with: > /builds/idf/crosstool-NG/.build/riscv32-esp-elf/src/gcc/configure > --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu > --target=riscv32-esp-elf > --prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf > --exec_prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf > > --with-local-prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf/riscv32-esp-elf > > --with-headers=/builds/idf/crosstool-NG/builds/riscv32-esp-elf/riscv32-esp-elf/include > --with-newlib --enable-threads=no --disable-shared --with-arch=rv32gc > --with-abi=ilp32 --with-pkgversion='crosstool-NG esp-2021r2-patch5' > --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections > --disable-libgomp --disable-libmudflap --disable-libmpx > --disable-libssp --disable-libquadmath --disable-libquadmath-support > --disable-libstdcxx-verbose > --with-gmp=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools > --with-mpfr=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools > --with-mpc=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools > --with-isl=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools > --enable-lto --enable-target-optspace --without-long-double-128 > --disable-nls --enable-multiarch --enable-languages=c,c++ > --disable-libstdcxx-verbose --enable-threads=posix > --enable-gcov-custom-rtio --enable-libstdcxx-time=yes > Thread model: posix > gcc version 8.4.0 (crosstool-NG esp-2021r2-patch5) > > % /usr/bin/time -h ./tools/configure.sh -B esp32c3-devkit:nsh > 3,31s real 1,83s user 1,53s sys > > % /usr/bin/time -h gmake -j8 CROSSDEV=riscv32-esp-elf- > /usr/local/bin/bash: line 1: riscv64-unknown-elf-gcc: command not found > expr: syntax error > (..) > 19,49s real 1m1,52s user 45,56s sys > > % /usr/bin/time -h gmake flash CROSSDEV=riscv32-esp-elf- > 12,70s real 2,11s user 2,11s sys > > % cu -l /dev/cuaU0 -s 115200 > can't open log file /var/log/aculog. > Connected > ESP-ROM:esp32c3-api1-20210207 > Build:Feb 7 2021 > rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT) > SPIWP:0xee > mode:DIO, clock div:1 > load:0x3fcd5820,len:0x16c0 > load:0x403cc710,len:0x87c > load:0x403ce710,len:0x2f54 > entry 0x403cc710 > I (30) boot: ESP-IDF v5.1-dev-3972-g1559b6309f 2nd stage bootloader > I (30) boot: compile time Mar 15 2023 12:14:06 > I (31) boot: chip revision: v0.3 > I (35) boot.esp32c3: SPI Speed : 80MHz > I (40) boot.esp32c3: SPI Mode : DIO > I (44) boot.esp32c3: SPI Flash Size : 4MB > I (49) boot: Enabling RNG early entropy source... > I (54) boot: Partition Table: > I (58) boot: ## Label Usage Type ST Offset Length > I (65) boot: 0 factory factory app 00 00 00010000 00100000 > I (73) boot: End of partition table > I (77) esp_image: segment 0: paddr=00010020 vaddr=3c020020 size=038b8h > ( 14520) map > I (88) esp_image: segment 1: paddr=000138e0 vaddr=3fc82ed0 size=001f4h > ( 500) load > I (94) esp_image: segment 2: paddr=00013adc vaddr=40380000 size=0197ch > ( 6524) load > I (103) esp_image: segment 3: paddr=00015460 vaddr=00000000 size=0ac98h ( > 44184) > I (117) esp_image: segment 4: paddr=00020100 vaddr=42000100 > size=15694h ( 87700) map > I (133) boot: Loaded app from partition at offset 0x10000 > I (133) boot: Disabling RNG early entropy source... > > NuttShell (NSH) NuttX-12.4.0 > nsh> uname -a > NuttX 12.4.0 96c2707737 Jan 13 2024 01:43:34 risc-v esp32c3-devkit > > > % /usr/bin/time -h gmake clean distclean CROSSDEV=riscv32-esp-elf- > 10,54s real 4,99s user 7,09s sys > > % /usr/bin/time -h ./tools/configure.sh -B esp32c3-devkit:coremark > 3,30s real 1,70s user 1,64s sys > > % /usr/bin/time -h gmake -j8 CROSSDEV=riscv32-esp-elf- > /usr/local/bin/bash: line 1: riscv64-unknown-elf-gcc: command not found > expr: syntax error > (..) > 18,61s real 55,81s user 42,59s sys > > % /usr/bin/time -h gmake flash CROSSDEV=riscv32-esp-elf- > 10,20s real 1,80s user 1,46s sys > > % cu -l /dev/cuaU0 -s 115200 > Connected > ESP-ROM:esp32c3-api1-20210207 > Build:Feb 7 2021 > rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT) > SPIWP:0xee > mode:DIO, clock div:1 > load:0x3fcd5820,len:0x16c0 > load:0x403cc710,len:0x87c > load:0x403ce710,len:0x2f54 > entry 0x403cc710 > I (30) boot: ESP-IDF v5.1-dev-3972-g1559b6309f 2nd stage bootloader > I (30) boot: compile time Mar 15 2023 12:14:06 > I (31) boot: chip revision: v0.3 > I (35) boot.esp32c3: SPI Speed : 80MHz > I (40) boot.esp32c3: SPI Mode : DIO > I (44) boot.esp32c3: SPI Flash Size : 4MB > I (49) boot: Enabling RNG early entropy source... > I (54) boot: Partition Table: > I (58) boot: ## Label Usage Type ST Offset Length > I (65) boot: 0 factory factory app 00 00 00010000 00100000 > I (73) boot: End of partition table > I (77) esp_image: segment 0: paddr=00010020 vaddr=3c010020 size=00c08h > ( 3080) map > I (86) esp_image: segment 1: paddr=00010c30 vaddr=3fc83810 size=00168h > ( 360) load > I (94) esp_image: segment 2: paddr=00010da0 vaddr=40380000 size=01ed8h > ( 7896) load > I (104) esp_image: segment 3: paddr=00012c80 vaddr=00000000 size=0d478h ( > 54392) > I (119) esp_image: segment 4: paddr=00020100 vaddr=42000100 > size=0d46ch ( 54380) map > I (128) boot: Loaded app from partition at offset 0x10000 > I (128) boot: Disabling RNG early entropy source... > Running CoreMark... > 2K performance run parameters for coremark. > CoreMark Size : 666 > Total ticks : 1472 > Total time (secs): 14.720000 > Iterations/Sec : 407.608696 > Iterations : 6000 > Compiler version : GCC8.4.0 > Compiler flags : -O3 -fno-strict-aliasing -fomit-frame-pointer > -ffunction-sections -fdata-sections > Memory location : HEAP > seedcrc : 0xe9f5 > [0]crclist : 0xe714 > [0]crcmatrix : 0x1fd7 > [0]crcstate : 0x8e3a > [0]crcfinal : 0xa14c > Correct operation validated. See README.md for run and reporting rules. > CoreMark 1.0 : 407.608696 / GCC8.4.0 -O3 -fno-strict-aliasing > -fomit-frame-pointer -ffunction-sections -fdata-sections / HEAP > > > % /usr/bin/time -h gmake clean distclean CROSSDEV=riscv32-esp-elf- > 10,10s real 5,22s user 6,40s sys > > % /usr/bin/time -h ./tools/configure.sh -B esp32c3-devkit:ostest > 3,33s real 1,54s user 1,83s sys > > > % /usr/bin/time -h gmake -j8 CROSSDEV=riscv32-esp-elf- > /usr/local/bin/bash: line 1: riscv64-unknown-elf-gcc: command not found > expr: syntax error > Create version.h > (..) > 19,33s real 58,71s user 45,92s sys > > % /usr/bin/time -h gmake flash CROSSDEV=riscv32-esp-elf- > 15,12s real 2,15s user 2,03s sys > > % cu -l /dev/cuaU0 -s 115200 > Connected > ESP-ROM:esp32c3-api1-20210207 > Build:Feb 7 2021 > rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT) > SPIWP:0xee > mode:DIO, clock div:1 > load:0x3fcd5820,len:0x16c0 > load:0x403cc710,len:0x87c > load:0x403ce710,len:0x2f54 > entry 0x403cc710 > I (30) boot: ESP-IDF v5.1-dev-3972-g1559b6309f 2nd stage bootloader > I (30) boot: compile time Mar 15 2023 12:14:06 > I (31) boot: chip revision: v0.3 > I (35) boot.esp32c3: SPI Speed : 80MHz > I (40) boot.esp32c3: SPI Mode : DIO > I (44) boot.esp32c3: SPI Flash Size : 4MB > I (49) boot: Enabling RNG early entropy source... > I (54) boot: Partition Table: > I (58) boot: ## Label Usage Type ST Offset Length > I (65) boot: 0 factory factory app 00 00 00010000 00100000 > I (73) boot: End of partition table > I (77) esp_image: segment 0: paddr=00010020 vaddr=3c020020 size=0a598h > ( 42392) map > I (92) esp_image: segment 1: paddr=0001a5c0 vaddr=3fc83450 size=00230h > ( 560) load > I (94) esp_image: segment 2: paddr=0001a7f8 vaddr=40380000 size=01894h > ( 6292) load > I (103) esp_image: segment 3: paddr=0001c094 vaddr=00000000 size=04064h ( > 16484) > I (113) esp_image: segment 4: paddr=00020100 vaddr=42000100 > size=1b3a8h (111528) map > I (136) boot: Loaded app from partition at offset 0x10000 > I (136) boot: Disabling RNG early entropy source... > > NuttShell (NSH) NuttX-12.4.0 > 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, GoodValue3, FALSE) > ostest_main: setenv(Variable3, BadValue2, 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]="ostest" > 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 5b9dc 5b9dc > ordblks 1 1 > mxordblk 56e20 56e20 > uordblks 4bbc 4bbc > fordblks 56e20 56e20 > > user_main: getopt() test > getopt(): Simple test > getopt(): Invalid argument > getopt(): Missing optional argument > getopt_long(): Simple test > getopt_long(): No short options > getopt_long(): Argument for --option=argument > getopt_long(): Invalid long option > getopt_long(): Mixed long and short options > getopt_long(): Invalid short option > getopt_long(): Missing optional arguments > getopt_long_only(): Mixed long and short options > getopt_long_only(): Single hyphen long options > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 1 1 > mxordblk 56e20 56e20 > uordblks 4bbc 4bbc > fordblks 56e20 56e20 > 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 5b9dc 5b9dc > ordblks 1 2 > mxordblk 56e20 56e20 > uordblks 4bbc 4b9c > fordblks 56e20 56e40 > 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 5b9dc 5b9dc > ordblks 2 3 > mxordblk 56e20 56e20 > uordblks 4b9c 4b34 > fordblks 56e40 56ea8 > > 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 5b9dc 5b9dc > ordblks 3 3 > mxordblk 56e20 56e20 > uordblks 4b34 4b34 > fordblks 56ea8 56ea8 > > 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 5b9dc 5b9dc > ordblks 3 3 > mxordblk 56e20 56e20 > uordblks 4b34 4b34 > fordblks 56ea8 56ea8 > > 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]="ostest" > 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 restart_main at PID=4 > restart_main: Started with argc=4 > restart_main: argv[0]="ostest" > 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: Started with argc=4 > restart_main: argv[0]="ostest" > 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 5b9dc 5b9dc > ordblks 3 4 > mxordblk 56e20 54a78 > uordblks 4b34 6c1c > fordblks 56ea8 54dc0 > > 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 5b9dc 5b9dc > ordblks 4 6 > mxordblk 54a78 50300 > uordblks 6c1c ad7c > fordblks 54dc0 50c60 > > 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 5b9dc 5b9dc > ordblks 6 5 > mxordblk 50300 54a78 > uordblks ad7c 542c > fordblks 50c60 565b0 > > 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 5b9dc 5b9dc > ordblks 5 4 > mxordblk 54a78 54a78 > uordblks 542c 542c > fordblks 565b0 565b0 > > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 5b9dc 5b9dc > ordblks 4 4 > mxordblk 54a78 54a78 > uordblks 542c 6c2c > fordblks 565b0 54db0 > > 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 5b9dc 5b9dc > ordblks 4 4 > mxordblk 54a78 54a78 > uordblks 6c2c 6c2c > fordblks 54db0 54db0 > > 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 > sem_test: Starting waiter thread 2 > waiter_func: Thread 1 waiting on semaphore > 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 > poster_func: Thread 3 new semaphore value = 0 > waiter_func: Thread 2 new semaphore value = 0 > waiter_func: Thread 2 done > poster_func: Thread 3 done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 4 5 > mxordblk 54a78 54a78 > uordblks 6c2c 542c > fordblks 54db0 565b0 > > 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: (33 sec, 970000000 nsec) > AFTER: (35 sec, 980000000 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: (35 sec, 980000000 nsec) > AFTER: (36 sec, 990000000 nsec) > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 5 4 > mxordblk 54a78 54a78 > uordblks 542c 542c > fordblks 565b0 565b0 > > 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 5b9dc 5b9dc > ordblks 4 5 > mxordblk 54a78 54a78 > uordblks 542c 542c > fordblks 565b0 565b0 > > user_main: pthread_exit() test > pthread_exit_test: Started pthread_exit_main at PID=37 > pthread_exit_main 37: Starting pthread_exit_thread > pthread_exit_main 37: Sleeping for 5 seconds > pthread_exit_thread 38: Sleeping for 10 second > pthread_exit_main 37: Calling pthread_exit() > pthread_exit_thread 38: Still running... > pthread_exit_thread 38: Exiting > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 5 4 > mxordblk 54a78 541b8 > uordblks 542c 542c > fordblks 565b0 565b0 > > user_main: pthread_rwlock test > pthread_rwlock: Initializing rwlock > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 4 5 > mxordblk 541b8 54a78 > uordblks 542c 542c > fordblks 565b0 565b0 > > user_main: pthread_rwlock_cancel test > pthread_rwlock_cancel: Starting test > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 5 4 > mxordblk 54a78 54a78 > uordblks 542c 4b6c > fordblks 565b0 56e70 > > 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 5b9dc 5b9dc > ordblks 4 4 > mxordblk 54a78 54a78 > uordblks 4b6c 542c > fordblks 56e70 565b0 > > 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 5b9dc 5b9dc > ordblks 4 3 > mxordblk 54a78 54a78 > uordblks 542c 6c8c > fordblks 565b0 54d50 > > user_main: timed message queue test > timedmqueue_test: Starting sender > timedmqueue_test: Waiting for sender to complete > sender_thread: Starting > 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 > timedmqueue_test: Waiting for receiver to complete > receiver_thread: Starting > receiver_thread: mq_timedreceive succeed on msg 0 > receiver_thread: mq_timedreceive succeed on msg 1 > receiver_thread: mq_timedreceive succeed on msg 2 > receiver_thread: mq_timedreceive succeed on msg 3 > receiver_thread: mq_timedreceive succeed on msg 4 > receiver_thread: mq_timedreceive succeed on msg 5 > receiver_thread: mq_timedreceive succeed on msg 6 > receiver_thread: mq_timedreceive succeed on msg 7 > receiver_thread: mq_timedreceive succeed 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 5b9dc 5b9dc > ordblks 3 4 > mxordblk 54a78 54a78 > uordblks 6c8c 6cbc > fordblks 54d50 54d20 > > user_main: sigprocmask test > sigprocmask_test: SUCCESS > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 4 4 > mxordblk 54a78 54a78 > uordblks 6cbc 6cbc > fordblks 54d20 54d20 > > user_main: signal handler test > sighand_test: Initializing semaphore to 0 > sighand_test: Starting waiter task > sighand_test: Started waiter_main pid=62 > waiter_main: Waiter started > waiter_main: Unmasking signal 32 > waiter_main: Registering signal handler > waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 > waiter_main: Waiting on semaphore > sighand_test: Signaling pid=62 with signo=32 sigvalue=42 > waiter_main: sem_wait() successfully interrupted by signal > waiter_main: done > sighand_test: done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 4 5 > mxordblk 54a78 52a70 > uordblks 6cbc 6d24 > fordblks 54d20 54cb8 > > user_main: nested signal handler test > signest_test: Starting signal waiter task at priority 101 > waiter_main: Waiter started > waiter_main: Setting signal mask > waiter_main: Registering signal handler > signest_test: Started waiter_main pid=63 > waiter_main: Waiting on semaphore > signest_test: Starting interfering task at priority 102 > interfere_main: Waiting on semaphore > signest_test: Started interfere_main pid=68 > signest_test: Simple case: > Total signalled 1240 Odd=620 Even=620 > Total handled 1240 Odd=620 Even=620 > Total nested 0 Odd=0 Even=0 > signest_test: With task locking > Total signalled 2480 Odd=1240 Even=1240 > Total handled 2480 Odd=1240 Even=1240 > Total nested 0 Odd=0 Even=0 > signest_test: With intefering thread > Total signalled 3720 Odd=1860 Even=1860 > Total handled 3720 Odd=1860 Even=1860 > Total nested 0 Odd=0 Even=0 > signest_test: done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 5 5 > mxordblk 52a70 50a68 > uordblks 6d24 94dc > fordblks 54cb8 52500 > > user_main: POSIX timer test > timer_test: Initializing semaphore to 0 > timer_test: Unmasking signal 32 > timer_test: Registering signal handler > timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 > timer_test: Creating timer > timer_test: Starting timer > timer_test: Waiting on semaphore > timer_expiration: Received signal 32 > 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 32 > 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 32 > 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 32 > 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 32 > 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 5b9dc 5b9dc > ordblks 5 5 > mxordblk 50a68 54a78 > uordblks 94dc 537c > fordblks 52500 56660 > > 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: 69 > rr_test: Starting second get_primes_thread > Second get_primes_thread: 70 > 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 5b9dc 5b9dc > ordblks 5 5 > mxordblk 54a78 54a78 > uordblks 537c 64fc > fordblks 56660 554e0 > > user_main: barrier test > barrier_test: Initializing barrier > barrier_test: Thread 0 created > barrier_test: Thread 1 created > barrier_test: Thread 2 created > barrier_test: Thread 3 created > barrier_func: Thread 0 started > barrier_func: Thread 1 started > barrier_func: Thread 2 started > barrier_func: Thread 3 started > barrier_test: Thread 4 created > barrier_func: Thread 4 started > barrier_test: Thread 5 created > barrier_func: Thread 5 started > barrier_test: Thread 6 created > barrier_func: Thread 6 started > barrier_test: Thread 7 created > barrier_func: Thread 7 started > 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 5b9dc 5b9dc > ordblks 5 9 > mxordblk 54a78 52250 > uordblks 64fc 5c7c > fordblks 554e0 55d60 > > user_main: scheduler lock test > sched_lock: Starting lowpri_thread at 97 > sched_lock: Set lowpri_thread priority to 97 > sched_lock: Starting highpri_thread at 98 > sched_lock: Set highpri_thread priority to 98 > sched_lock: Waiting... > sched_lock: PASSED No pre-emption occurred while scheduler was locked. > sched_lock: Starting lowpri_thread at 97 > sched_lock: Set lowpri_thread priority to 97 > sched_lock: Starting highpri_thread at 98 > sched_lock: Set highpri_thread priority to 98 > sched_lock: Waiting... > sched_lock: PASSED No pre-emption occurred while scheduler was locked. > sched_lock: Finished > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 9 8 > mxordblk 52250 54c38 > uordblks 5c7c 5c7c > fordblks 55d60 55d60 > > user_main: vfork() test > vfork_test: Child 91 ran successfully > > Final memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 5b9dc 5b9dc > ordblks 1 7 > mxordblk 56e20 52c38 > uordblks 4bbc 7464 > fordblks 56e20 54578 > user_main: Exiting > ostest_main: Exiting with status 0 > > > % /usr/bin/time -h gmake clean distclean CROSSDEV=riscv32-esp-elf- > 10,63s real 5,06s user 7,12s sys > > > === ESP32-S2 === > xtensa-esp32s2-elf-gcc -v > Using built-in specs. > COLLECT_GCC=xtensa-esp32s2-elf-gcc > > COLLECT_LTO_WRAPPER=/usr/home/cederom/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/bin/../libexec/gcc/xtensa-esp32s2-elf/8.4.0/lto-wrapper > Target: xtensa-esp32s2-elf > Configured with: > /builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/src/gcc/configure > --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu > --target=xtensa-esp32s2-elf > --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32s2-elf > --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32s2-elf > > --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32s2-elf/xtensa-esp32s2-elf > > --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32s2-elf/xtensa-esp32s2-elf/include > --with-newlib --enable-threads=no --disable-shared > --with-pkgversion='crosstool-NG esp-2021r2-patch5' > --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections > --disable-libgomp --disable-libmudflap --disable-libmpx > --disable-libssp --disable-libquadmath --disable-libquadmath-support > --disable-libstdcxx-verbose > --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/buildtools > --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/buildtools > --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/buildtools > --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32s2-elf/buildtools > --enable-lto --enable-target-optspace --without-long-double-128 > --disable-nls --enable-multiarch --enable-languages=c,c++ > --disable-libstdcxx-verbose --enable-threads=posix > --enable-gcov-custom-rtio --enable-libstdcxx-time=yes > Thread model: posix > gcc version 8.4.0 (crosstool-NG esp-2021r2-patch5) > > Using updated .config: > 207 # CONFIG_ESP32S2_UART0_RS485 is not set > 208 CONFIG_ESP32S2_UART0_TXPIN=2 > 209 CONFIG_ESP32S2_UART0_RXPIN=3 > > % /usr/bin/time -h ./tools/configure.sh -B esp32s2-saola-1:nsh > 3,31s real 1,59s user 1,76s sys > > % /usr/bin/time -h gmake -j8 CROSSDEV=xtensa-esp32s2-elf- > 31,17s real 1m14,23s user 56,48s sys > > % /usr/bin/time -h gmake flash CROSSDEV=xtensa-esp32s2-elf- > 5,49s real 2,12s user 1,49s sys > > % cu -l /dev/cuaU0 -s 115200 > Connected > NuttShell (NSH) NuttX-12.4.0 > nsh> uname -a > NuttX 12.4.0 96c2707737 Jan 13 2024 02:38:01 xtensa esp32s2-saola-1 > > % /usr/bin/time -h gmake clean distclean CROSSDEV=xtensa-esp32s2-elf- > 8,86s real 3,98s user 4,98s sys > > % /usr/bin/time -h ./tools/configure.sh -B esp32s2-saola-1:coremark > 3,32s real 1,52s user 1,84s sys > > % /usr/bin/time -h gmake -j8 CROSSDEV=xtensa-esp32s2-elf- > 30,55s real 1m13,80s user 54,41s sys > > % /usr/bin/time -h gmake flash CROSSDEV=xtensa-esp32s2-elf- > 4,85s real 1,77s user 1,01s sys > > % cu -l /dev/cuaU0 -s 115200 > Connected > Running CoreMark... > 2K performance run parameters for coremark. > CoreMark Size : 666 > Total ticks : 1279 > Total time (secs): 12.790000 > Iterations/Sec : 469.116497 > Iterations : 6000 > Compiler version : GCC8.4.0 > Compiler flags : -O3 -fno-strict-aliasing -fomit-frame-pointer > -ffunction-sections -fdata-sections > Memory location : HEAP > seedcrc : 0xe9f5 > [0]crclist : 0xe714 > [0]crcmatrix : 0x1fd7 > [0]crcstate : 0x8e3a > [0]crcfinal : 0xa14c > Correct operation validated. See README.md for run and reporting rules. > CoreMark 1.0 : 469.116497 / GCC8.4.0 -O3 -fno-strict-aliasing > -fomit-frame-pointer -ffunction-sections -fdata-sections / HEAP > > % /usr/bin/time -h gmake clean distclean CROSSDEV=xtensa-esp32s2-elf- > 8,47s real 3,99s user 4,59s sys > > % /usr/bin/time -h ./tools/configure.sh -B esp32s2-saola-1:ostest > 3,34s real 1,60s user 1,78s sys > > % /usr/bin/time -h gmake -j8 CROSSDEV=xtensa-esp32s2-elf- > 32,13s real 1m17,88s user 57,65s sys > > % /usr/bin/time -h gmake flash CROSSDEV=xtensa-esp32s2-elf- > 6,19s real 2,42s user 1,46s sys > > % cu -l /dev/cuaU0 -s 115200 > Connected > > NuttShell (NSH) NuttX-12.4.0 > 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, GoodValue3, FALSE) > ostest_main: setenv(Variable3, BadValue2, 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]="ostest" > 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 4a33c 4a33c > ordblks 1 1 > mxordblk 45338 45338 > uordblks 5004 5004 > fordblks 45338 45338 > > user_main: getopt() test > getopt(): Simple test > getopt(): Invalid argument > getopt(): Missing optional argument > getopt_long(): Simple test > getopt_long(): No short options > getopt_long(): Argument for --option=argument > getopt_long(): Invalid long option > getopt_long(): Mixed long and short options > getopt_long(): Invalid short option > getopt_long(): Missing optional arguments > getopt_long_only(): Mixed long and short options > getopt_long_only(): Single hyphen long options > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 1 1 > mxordblk 45338 45338 > uordblks 5004 5004 > fordblks 45338 45338 > 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 4a33c 4a33c > ordblks 1 2 > mxordblk 45338 45338 > uordblks 5004 4fe4 > fordblks 45338 45358 > 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 4a33c 4a33c > ordblks 2 3 > mxordblk 45338 45338 > uordblks 4fe4 4f7c > fordblks 45358 453c0 > > 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 4a33c 4a33c > ordblks 3 3 > mxordblk 45338 45338 > uordblks 4f7c 4f7c > fordblks 453c0 453c0 > > 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 4a33c 4a33c > ordblks 3 3 > mxordblk 45338 45338 > uordblks 4f7c 4f7c > fordblks 453c0 453c0 > > 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]="ostest" > 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 restart_main at PID=4 > restart_main: Started with argc=4 > restart_main: argv[0]="ostest" > 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: Started with argc=4 > restart_main: argv[0]="ostest" > 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 4a33c 4a33c > ordblks 3 4 > mxordblk 45338 42f70 > uordblks 4f7c 7064 > fordblks 453c0 432d8 > > 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 4a33c 4a33c > ordblks 4 6 > mxordblk 42f70 3e7b8 > uordblks 7064 b1c4 > fordblks 432d8 3f178 > > 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 4a33c 4a33c > ordblks 6 5 > mxordblk 3e7b8 42f70 > uordblks b1c4 5874 > fordblks 3f178 44ac8 > > 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 4a33c 4a33c > ordblks 5 4 > mxordblk 42f70 42f70 > uordblks 5874 5874 > fordblks 44ac8 44ac8 > > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 > start_thread: Yielding > sem_waiter: Taking mutex > 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 4a33c 4a33c > ordblks 4 4 > mxordblk 42f70 42f70 > uordblks 5874 7074 > fordblks 44ac8 432c8 > > 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 4a33c 4a33c > ordblks 4 4 > mxordblk 42f70 42f70 > uordblks 7074 7074 > fordblks 432c8 432c8 > > 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 > sem_test: Starting waiter thread 2 > waiter_func: Thread 1 waiting on semaphore > 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 > poster_func: Thread 3 new semaphore value = 0 > waiter_func: Thread 2 new semaphore value = 0 > waiter_func: Thread 2 done > poster_func: Thread 3 done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 4 5 > mxordblk 42f70 42f70 > uordblks 7074 5874 > fordblks 432c8 44ac8 > > 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: (37 sec, 460000000 nsec) > AFTER: (39 sec, 470000000 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: (39 sec, 470000000 nsec) > AFTER: (40 sec, 480000000 nsec) > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 5 4 > mxordblk 42f70 42f70 > uordblks 5874 5874 > fordblks 44ac8 44ac8 > > 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 4a33c 4a33c > ordblks 4 5 > mxordblk 42f70 42f70 > uordblks 5874 5874 > fordblks 44ac8 44ac8 > > user_main: pthread_exit() test > pthread_exit_test: Started pthread_exit_main at PID=37 > pthread_exit_main 37: Starting pthread_exit_thread > pthread_exit_main 37: Sleeping for 5 seconds > pthread_exit_thread 38: Sleeping for 10 second > pthread_exit_main 37: Calling pthread_exit() > pthread_exit_thread 38: Still running... > pthread_exit_thread 38: Exiting > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 5 4 > mxordblk 42f70 426b0 > uordblks 5874 5874 > fordblks 44ac8 44ac8 > > user_main: pthread_rwlock test > pthread_rwlock: Initializing rwlock > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 4 5 > mxordblk 426b0 42f70 > uordblks 5874 5874 > fordblks 44ac8 44ac8 > > user_main: pthread_rwlock_cancel test > pthread_rwlock_cancel: Starting test > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 5 4 > mxordblk 42f70 42f70 > uordblks 5874 4fb4 > fordblks 44ac8 45388 > > 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 4a33c 4a33c > ordblks 4 4 > mxordblk 42f70 42f70 > uordblks 4fb4 5874 > fordblks 45388 44ac8 > > 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 4a33c 4a33c > ordblks 4 3 > mxordblk 42f70 42f70 > uordblks 5874 70d4 > fordblks 44ac8 43268 > > user_main: timed message queue test > timedmqueue_test: Starting sender > timedmqueue_test: Waiting for sender to complete > sender_thread: Starting > 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 > timedmqueue_test: Waiting for receiver to complete > receiver_thread: Starting > receiver_thread: mq_timedreceive succeed on msg 0 > receiver_thread: mq_timedreceive succeed on msg 1 > receiver_thread: mq_timedreceive succeed on msg 2 > receiver_thread: mq_timedreceive succeed on msg 3 > receiver_thread: mq_timedreceive succeed on msg 4 > receiver_thread: mq_timedreceive succeed on msg 5 > receiver_thread: mq_timedreceive succeed on msg 6 > receiver_thread: mq_timedreceive succeed on msg 7 > receiver_thread: mq_timedreceive succeed 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 4a33c 4a33c > ordblks 3 4 > mxordblk 42f70 42f70 > uordblks 70d4 7104 > fordblks 43268 43238 > > user_main: sigprocmask test > sigprocmask_test: SUCCESS > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 4 4 > mxordblk 42f70 42f70 > uordblks 7104 7104 > fordblks 43238 43238 > > user_main: signal handler test > sighand_test: Initializing semaphore to 0 > sighand_test: Starting waiter task > sighand_test: Started waiter_main pid=62 > waiter_main: Waiter started > waiter_main: Unmasking signal 32 > waiter_main: Registering signal handler > waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 > waiter_main: Waiting on semaphore > sighand_test: Signaling pid=62 with signo=32 sigvalue=42 > waiter_main: sem_wait() successfully interrupted by signal > waiter_main: done > sighand_test: done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 4 5 > mxordblk 42f70 40f68 > uordblks 7104 716c > fordblks 43238 431d0 > > user_main: nested signal handler test > signest_test: Starting signal waiter task at priority 101 > waiter_main: Waiter started > waiter_main: Setting signal mask > waiter_main: Registering signal handler > signest_test: Started waiter_main pid=63 > waiter_main: Waiting on semaphore > signest_test: Starting interfering task at priority 102 > interfere_main: Waiting on semaphore > signest_test: Started interfere_main pid=68 > signest_test: Simple case: > Total signalled 1240 Odd=620 Even=620 > Total handled 1240 Odd=620 Even=620 > Total nested 0 Odd=0 Even=0 > signest_test: With task locking > Total signalled 2480 Odd=1240 Even=1240 > Total handled 2480 Odd=1240 Even=1240 > Total nested 0 Odd=0 Even=0 > signest_test: With intefering thread > Total signalled 3720 Odd=1860 Even=1860 > Total handled 3720 Odd=1860 Even=1860 > Total nested 0 Odd=0 Even=0 > signest_test: done > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 5 5 > mxordblk 40f68 3ef60 > uordblks 716c 9924 > fordblks 431d0 40a18 > > user_main: POSIX timer test > timer_test: Initializing semaphore to 0 > timer_test: Unmasking signal 32 > timer_test: Registering signal handler > timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0000000000000000 > timer_test: Creating timer > timer_test: Starting timer > timer_test: Waiting on semaphore > timer_expiration: Received signal 32 > 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 32 > 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 32 > 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 32 > 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 32 > 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 4a33c 4a33c > ordblks 5 5 > mxordblk 3ef60 3ef60 > uordblks 9924 9924 > fordblks 40a18 40a18 > > 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: 69 > rr_test: Starting second get_primes_thread > Second get_primes_thread: 70 > 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 4a33c 4a33c > ordblks 5 5 > mxordblk 3ef60 42f70 > uordblks 9924 6944 > fordblks 40a18 439f8 > > user_main: barrier test > barrier_test: Initializing barrier > barrier_test: Thread 0 created > barrier_test: Thread 1 created > barrier_test: Thread 2 created > barrier_test: Thread 3 created > barrier_func: Thread 0 started > barrier_func: Thread 1 started > barrier_func: Thread 2 started > barrier_func: Thread 3 started > barrier_test: Thread 4 created > barrier_func: Thread 4 started > barrier_test: Thread 5 created > barrier_func: Thread 5 started > barrier_test: Thread 6 created > barrier_func: Thread 6 started > barrier_test: Thread 7 created > barrier_func: Thread 7 started > 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 4a33c 4a33c > ordblks 5 8 > mxordblk 42f70 40748 > uordblks 6944 60c4 > fordblks 439f8 44278 > > user_main: setjmp test > setjmp_test: Initializing jmp_buf > setjmp_test: Try jump > setjmp_test: Jump succeed > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 8 8 > mxordblk 40748 40748 > uordblks 60c4 60c4 > fordblks 44278 44278 > > user_main: scheduler lock test > sched_lock: Starting lowpri_thread at 97 > sched_lock: Set lowpri_thread priority to 97 > sched_lock: Starting highpri_thread at 98 > sched_lock: Set highpri_thread priority to 98 > sched_lock: Waiting... > sched_lock: PASSED No pre-emption occurred while scheduler was locked. > sched_lock: Starting lowpri_thread at 97 > sched_lock: Set lowpri_thread priority to 97 > sched_lock: Starting highpri_thread at 98 > sched_lock: Set highpri_thread priority to 98 > sched_lock: Waiting... > sched_lock: PASSED No pre-emption occurred while scheduler was locked. > sched_lock: Finished > > End of test memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 8 7 > mxordblk 40748 43150 > uordblks 60c4 60c4 > fordblks 44278 44278 > > Final memory usage: > VARIABLE BEFORE AFTER > ======== ======== ======== > arena 4a33c 4a33c > ordblks 1 7 > mxordblk 45338 43150 > uordblks 5004 60c4 > fordblks 45338 44278 > user_main: Exiting > ostest_main: Exiting with status 0 > > % /usr/bin/time -h gmake clean distclean CROSSDEV=xtensa-esp32s2-elf- > 8,96s real 3,99s user 5,08s sys > > > === ESP32-S3 === > > None ESP32-S3 USB Device nor ESP32-S3-Pico UART converter CH343 is > still supported. Out of scope. > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272803 > > > === SIM === > > Fails here but will not block needs to be reviewed in a free moment > probably FreeBSD / CLANG 14 only. Sorry I did not use SIM for a while > :-) > > % cc --version > FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git > llvmorg-14.0.5-0-gc12386ae247c > <https://github.com/llvm/llvm-project.gitllvmorg-14.0.5-0-gc12386ae247c>) > Target: x86_64-unknown-freebsd13.2 > Thread model: posix > InstalledDir: /usr/bin > > % /usr/bin/time -h ./tools/configure.sh -B sim:nsh > 3,39s real 1,73s user 1,70s sys > > % /usr/bin/time -h gmake -j8 > Create version.h > LN: platform/board to > /XXX/nuttx/workbench/releases/12.4.0-RC0/apps/platform/dummy > Register: dumpstack > Register: hello > Register: gpio > Register: nsh > Register: sh > CP: /XXX/nuttx/workbench/releases/12.4.0-RC0/nuttx/include/nuttx/config.h > CP: > /XXX/nuttx/workbench/releases/12.4.0-RC0/nuttx/include/nuttx/fs/hostfs.h > CC: dummy.c sim/posix/sim_hostfs.c:81:12: warning: implicit > declaration of function 'S_TYPEISSEM' is invalid in C99 > [-Wimplicit-function-declaration] > else if (S_TYPEISSEM(hostbuf)) > ^ > implicit declaration of function 'S_TYPEISMQ' is invalid in C99 > [-Wimplicit-function-declaration] > else if (S_TYPEISMQ(hostbuf)) > ^ > sim/posix/sim_hostfs.c:89:12: warning: implicit declaration of > function 'S_TYPEISSHM' is invalid in C99 > [-Wimplicit-function-declaration] > else if (S_TYPEISSHM(hostbuf)) > ^ > 3 warnings generated. > LD: nuttx > ld: error: -Ttext-segment is not supported. Use --image-base if you > intend to set the base address > cc: error: linker command failed with exit code 1 (use -v to see > invocation) > gmake[1]: *** [Makefile:376: nuttx] Error 1 > gmake: *** [tools/Unix.mk:545: nuttx] Error 2 > 18,06s real 1m2,85s user 36,55s sys > > > -- > CeDeROM, SQ7MHZ, http://www.tomek.cedro.info >