Skip to content

Releases: lupyuen/nuttx-riscv64

special-qemu-riscv-knsh64-2024-10-15-05-52-27

15 Oct 05:52
Compare
Choose a tag to compare
Validate all defconfig files

special-qemu-riscv-knsh64-2024-10-15-04-39-24

15 Oct 04:39
Compare
Choose a tag to compare
Validate all defconfig files

special-qemu-riscv-knsh-2024-10-15-06-04-42

15 Oct 06:04
Compare
Choose a tag to compare
Validate all defconfig files

special-qemu-riscv-knsh-2024-10-15-05-59-17

15 Oct 05:59
Compare
Choose a tag to compare
Validate all defconfig files

special-qemu-riscv-knsh-2024-10-15-05-52-22

15 Oct 05:52
Compare
Choose a tag to compare
Validate all defconfig files

special-qemu-riscv-knsh-2024-10-15-04-39-17

15 Oct 04:39
Compare
Choose a tag to compare
Validate all defconfig files

qemu-riscv-nsh64-2024-11-14

14 Nov 00:32
Compare
Choose a tag to compare

Attempt 1
Test OK
1 Attempts Successful
Attempt 2
Test OK
2 Attempts Successful
Attempt 3
Error: Test Failed
ERROR AT ATTEMPT 3

Thu Nov 14 08:34:28 +08 2024
----- Download the latest NuttX build for 2024-11-14
Archive:  nuttx.zip
  inflating: nuttx                   
  inflating: nuttx.S                 
  inflating: nuttx.config            
  inflating: nuttx.hash              
  inflating: nuttx.manifest          
  inflating: nuttx.map               
  inflating: System.map              
Thu Nov 14 08:34:29 +08 2024
NuttX Source: https://github.com/apache/nuttx/tree/5d87319cb6af14131e0b547e0bcfb88629c1bfed
NuttX Apps: https://github.com/apache/nuttx-apps/tree/1c7a7f7529475b0d535e2088a9c4e1532c487156
total 163944
-rw-r--r--  1 luppy  wheel     48153 Nov 14 08:32 System.map
-rwxr-xr-x  1 luppy  wheel   3150096 Nov 14 08:32 nuttx
-rw-r--r--  1 luppy  wheel  68593229 Nov 14 08:32 nuttx.S
-rw-r--r--  1 luppy  wheel     48383 Nov 14 08:30 nuttx.config
-rw-r--r--  1 luppy  wheel       187 Nov 14 08:30 nuttx.hash
-rw-r--r--  1 luppy  wheel        27 Nov 14 08:32 nuttx.manifest
-rw-r--r--  1 luppy  wheel   2398360 Nov 14 08:32 nuttx.map
-rw-r--r--@ 1 luppy  wheel   9676764 Nov 14 08:32 nuttx.zip
-rwxr-xr-x@ 1 luppy  wheel      1296 Nov 14 08:34 qemu-riscv-nsh64.exp
NuttX Source: https://github.com/apache/nuttx/tree/5d87319cb6af14131e0b547e0bcfb88629c1bfed
NuttX Apps: https://github.com/apache/nuttx-apps/tree/1c7a7f7529475b0d535e2088a9c4e1532c487156
QEMU emulator version 9.1.1
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
===== Attempt 1
Thu Nov 14 08:34:30 +08 2024
spawn qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -bios none -kernel nuttx -nographic
ABC
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 5d87319cb6 Nov 14 2024 00:31:37 risc-v rv-virt
nsh> free
      total       used       free    maxused    maxfree  nused  nfree name
   33350520       8328   33342192       9008   33342192     22      1 Umem
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 142 msec
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 119 msec
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=9

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     1fce378  1fce378
ordblks         1        1
mxordblk  1fc9140  1fc9140
uordblks     5238     5238
fordblks  1fc9140  1fc9140

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     1fce378  1fce378
ordblks         1        1
mxordblk  1fc9140  1fc9140
uordblks     5238     5238
fordblks  1fc9140  1fc9140

user_main: libc tests

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena     1fce378  1fce378
ordblks         1        1
mxordblk  1fc9140  1fc9140
uordblks     5238     5238
fordblks  1fc9140  1fc9140
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     1fce378  1fce378
ordblks         1        2
mxordblk  1fc9140  1fc9140
uordblks     5238     5218
fordblks  1fc9140  1fc9160
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     1fce378  1fce378
ordblks         2        2
mxordblk  1fc9140  1fc9140
uordblks     5218     5138
fordblks  1fc9160  1fc9240

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     1fce378  1fce378
ordblks         2        2
mxordblk  1fc9140  1fc9140
uordblks     5138     5138
fordblks  1fc9240  1fc9240

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     1fce378  1fce378
ordblks         2        2
mxordblk  1fc9140  1fc9140
uordblks     5138     5138
fordblks  1fc9240  1fc9240

user_main: FPU test
Starting task FPU#1
fpu_test: Started task FPU#1 at PID=10
FPU#1: pass 1
Starting task FPU#2
fpu_test: Started task FPU#2 at PID=11
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     1fce378  1fce378
ordblks         2        3
mxordblk  1fc9140  1fc7540
uordblks     5138     6748
fordblks  1fc9240  1fc7c30

user_main: task_restart test

Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=12
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=12
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     1fce378  1fce378
ordblks         3        2
mxordblk  1fc7540  1fc6b40
uordblks     6748     7798
fordblks  1fc7c30  1fc6be0

user_main: waitpid test

Test waitpid()
waitpid_start_child: Started waitpid_main at PID=13
waitpid_start_child: Started waitpid_main at PID=14
waitpid_start_child: Started waitpid_main at PID=15
waitpid_test: Waiting for PID=13 with waitpid()
waitpid_main: PID 13 Started
waitpid_main: PID 14 Started
waitpid_main: PID 15 Started
waitpid_main: PID 13 exitting with result=14
waitpid_main: PID 14 exitting with result=14
waitpid_main: PID 15 exitting with result=14
waitpid_test: PID 13 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=15 with waitpid()
waitpid_last: PASS: PID 15 waitpid failed with ECHILD.  That may be
              acceptable because child status is disabled on this thread.

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena     1fce378  1fce378
ordblks         2        5
mxordblk  1fc6b40  1fc1ec0
uordblks     7798     bda8
fordblks  1fc6be0  1fc25d0

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     1fce378  1fce378
ordblks         5        2
mxordblk  1fc1ec0  1fc7e60
uordblks     bda8     6478
fordblks  1fc25d0  1fc7f00

user_main: timed mutex test
mutex_test: Initializing mutex
mutex_test: Starting thread
pthread:  Started
pthread:  Waiti...
Read more

qemu-riscv-nsh64-2024-11-13

13 Nov 00:31
Compare
Choose a tag to compare

Attempt 1
Test OK
1 Attempts Successful
Attempt 2
Test OK
2 Attempts Successful
Attempt 3
Test OK
3 Attempts Successful
Attempt 4
Test OK
4 Attempts Successful
Attempt 5
Test OK
5 Attempts Successful
Attempt 6
Test OK
6 Attempts Successful
Attempt 7
Test OK
7 Attempts Successful
Attempt 8
Test OK
8 Attempts Successful
Attempt 9
Test OK
9 Attempts Successful
Attempt 10
Test OK
10 Attempts Successful
Attempt 11
Test OK
11 Attempts Successful
Attempt 12
Test OK
12 Attempts Successful
Attempt 13
Test OK
13 Attempts Successful
Attempt 14
Test OK
14 Attempts Successful
Attempt 15
Test OK
15 Attempts Successful
Attempt 16
Test OK
16 Attempts Successful
Attempt 17
Test OK
17 Attempts Successful
Attempt 18
Test OK
18 Attempts Successful
Attempt 19
Test OK
19 Attempts Successful
Attempt 20
Test OK
20 Attempts Successful

Wed Nov 13 08:36:20 +08 2024
----- Download the latest NuttX build for 2024-11-13
Archive:  nuttx.zip
  inflating: nuttx                   
  inflating: nuttx.S                 
  inflating: nuttx.config            
  inflating: nuttx.hash              
  inflating: nuttx.manifest          
  inflating: nuttx.map               
  inflating: System.map              
Wed Nov 13 08:36:21 +08 2024
NuttX Source: https://github.com/apache/nuttx/tree/1d1ef52d1a40c40dd5b2d060f4d56053a992dc09
NuttX Apps: https://github.com/apache/nuttx-apps/tree/bb03ef0ce3ac34a6f86906148fbcca0f71da073b
total 163936
-rw-r--r--  1 luppy  wheel     48119 Nov 13 08:31 System.map
-rwxr-xr-x  1 luppy  wheel   3150008 Nov 13 08:31 nuttx
-rw-r--r--  1 luppy  wheel  68590882 Nov 13 08:31 nuttx.S
-rw-r--r--  1 luppy  wheel     48420 Nov 13 08:30 nuttx.config
-rw-r--r--  1 luppy  wheel       187 Nov 13 08:30 nuttx.hash
-rw-r--r--  1 luppy  wheel        27 Nov 13 08:31 nuttx.manifest
-rw-r--r--  1 luppy  wheel   2397901 Nov 13 08:31 nuttx.map
-rw-r--r--@ 1 luppy  wheel   9676682 Nov 13 08:31 nuttx.zip
-rwxr-xr-x@ 1 luppy  wheel      1296 Nov 13 08:36 qemu-riscv-nsh64.exp
NuttX Source: https://github.com/apache/nuttx/tree/1d1ef52d1a40c40dd5b2d060f4d56053a992dc09
NuttX Apps: https://github.com/apache/nuttx-apps/tree/bb03ef0ce3ac34a6f86906148fbcca0f71da073b
QEMU emulator version 9.1.1
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
===== Attempt 1
Wed Nov 13 08:36:21 +08 2024
spawn qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -bios none -kernel nuttx -nographic
ABC
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 1d1ef52d1a Nov 13 2024 00:31:08 risc-v rv-virt
nsh> free
      total       used       free    maxused    maxfree  nused  nfree name
   33350552       8328   33342224       9008   33342224     22      1 Umem
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 56 msec
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 54 msec
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=9

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     1fce398  1fce398
ordblks         1        1
mxordblk  1fc9160  1fc9160
uordblks     5238     5238
fordblks  1fc9160  1fc9160

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     1fce398  1fce398
ordblks         1        1
mxordblk  1fc9160  1fc9160
uordblks     5238     5238
fordblks  1fc9160  1fc9160

user_main: libc tests

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena     1fce398  1fce398
ordblks         1        1
mxordblk  1fc9160  1fc9160
uordblks     5238     5238
fordblks  1fc9160  1fc9160
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     1fce398  1fce398
ordblks         1        2
mxordblk  1fc9160  1fc9160
uordblks     5238     5218
fordblks  1fc9160  1fc9180
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     1fce398  1fce398
ordblks         2        2
mxordblk  1fc9160  1fc9160
uordblks     5218     5138
fordblks  1fc9180  1fc9260

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     1fce398  1fce398
ordblks         2        2
mxordblk  1fc9160  1fc9160
uordblks     5138     5138
fordblks  1fc9260  1fc9260

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     1fce398  1fce398
ordblks         2        2
mxordblk  1fc9160  1fc9160
uordblks     5138     5138
fordblks  1fc9260  1fc9260

user_main: FPU test
Starting task FPU#1
fpu_test: Started task FPU#1 at PID=10
FPU#1: pass 1
Starting task FPU#2
fpu_test: Started task FPU#2 at PID=11
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     1fce398  1fce398
ordblks         2        4
mxordblk  1fc9160  1fc7560
uordblks     5138     6158
fordblks  1fc9260  1fc8240

user_main: task_restart test

Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=12
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=12
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     1fce398  1fce398
ordblks         4        2
mxordblk  1fc7560  1fc6b60
uordblks     6158     7798
fordblks  1fc8240  1fc6c00

user_main: waitpid test

Test waitpid()
waitpid_start_child: Started waitpid_main at PID=13
waitpid_start_child: Started waitpid_main at PID=14
waitpid_start_child: Started waitpid_main at PID=15
waitpid_test: Waiting for PID=13 with waitpid()
waitpid_main: PID 13 Started
waitpid_main: PID 14 Started
waitpid_main: PID 15 Started
waitpid_main: PID 13 exitting with result=14
waitpid_main: PID 14 exitting with result=14
waitpid_test: PID 13 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=15 with waitpid()
waitpid_main: PID 15 exitting with result=14
waitpid_last: PASS: PID 15 waitpid succeeded with stat_loc=0e00

End of test memory usage:
VARIABLE  BEFORE   AFTER
====...
Read more

qemu-riscv-nsh64-2024-11-12

12 Nov 00:31
Compare
Choose a tag to compare

Attempt 1
Test OK
1 Attempts Successful
Attempt 2
Test OK
2 Attempts Successful
Attempt 3
Test OK
3 Attempts Successful
Attempt 4
Test OK
4 Attempts Successful
Attempt 5
Test OK
5 Attempts Successful
Attempt 6
Test OK
6 Attempts Successful
Attempt 7
Test OK
7 Attempts Successful
Attempt 8
Test OK
8 Attempts Successful
Attempt 9
Test OK
9 Attempts Successful
Attempt 10
Test OK
10 Attempts Successful
Attempt 11
Test OK
11 Attempts Successful
Attempt 12
Test OK
12 Attempts Successful
Attempt 13
Test OK
13 Attempts Successful
Attempt 14
Test OK
14 Attempts Successful
Attempt 15
Test OK
15 Attempts Successful
Attempt 16
Test OK
16 Attempts Successful
Attempt 17
Test OK
17 Attempts Successful
Attempt 18
Test OK
18 Attempts Successful
Attempt 19
Test OK
19 Attempts Successful
Attempt 20
Test OK
20 Attempts Successful

Tue Nov 12 09:13:15 +08 2024
----- Download the latest NuttX build for 2024-11-12
Archive:  nuttx.zip
  inflating: nuttx                   
  inflating: nuttx.S                 
  inflating: nuttx.config            
  inflating: nuttx.hash              
  inflating: nuttx.manifest          
  inflating: nuttx.map               
  inflating: System.map              
Tue Nov 12 09:13:17 +08 2024
NuttX Source: https://github.com/apache/nuttx/tree/2464b3207d3819a0ab98e493e8a76b163e3c193a
NuttX Apps: https://github.com/apache/nuttx-apps/tree/0c467dc02d1f03f3f9f3defb16f36cb4f53b4c9d
total 163728
-rw-r--r--  1 luppy  wheel     48017 Nov 12 08:31 System.map
-rwxr-xr-x  1 luppy  wheel   3145328 Nov 12 08:31 nuttx
-rw-r--r--  1 luppy  wheel  68512895 Nov 12 08:31 nuttx.S
-rw-r--r--  1 luppy  wheel     48223 Nov 12 08:30 nuttx.config
-rw-r--r--  1 luppy  wheel       187 Nov 12 08:30 nuttx.hash
-rw-r--r--  1 luppy  wheel        27 Nov 12 08:31 nuttx.manifest
-rw-r--r--  1 luppy  wheel   2391930 Nov 12 08:31 nuttx.map
-rw-r--r--@ 1 luppy  wheel   9664122 Nov 12 08:31 nuttx.zip
-rwxr-xr-x@ 1 luppy  wheel      1296 Nov 12 09:13 qemu-riscv-nsh64.exp
NuttX Source: https://github.com/apache/nuttx/tree/2464b3207d3819a0ab98e493e8a76b163e3c193a
NuttX Apps: https://github.com/apache/nuttx-apps/tree/0c467dc02d1f03f3f9f3defb16f36cb4f53b4c9d
QEMU emulator version 9.1.1
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
===== Attempt 1
Tue Nov 12 09:13:18 +08 2024
spawn qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -bios none -kernel nuttx -nographic
ABC
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 2464b3207d Nov 12 2024 00:30:43 risc-v rv-virt
nsh> free
      total       used       free    maxused    maxfree  nused  nfree name
   33351576       8328   33343248       9008   33343248     22      1 Umem
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 93 msec
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 97 msec
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=9

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     1fce798  1fce798
ordblks         1        1
mxordblk  1fc9560  1fc9560
uordblks     5238     5238
fordblks  1fc9560  1fc9560

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     1fce798  1fce798
ordblks         1        1
mxordblk  1fc9560  1fc9560
uordblks     5238     5238
fordblks  1fc9560  1fc9560

user_main: libc tests

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena     1fce798  1fce798
ordblks         1        1
mxordblk  1fc9560  1fc9560
uordblks     5238     5238
fordblks  1fc9560  1fc9560
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     1fce798  1fce798
ordblks         1        2
mxordblk  1fc9560  1fc9560
uordblks     5238     5218
fordblks  1fc9560  1fc9580
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     1fce798  1fce798
ordblks         2        2
mxordblk  1fc9560  1fc9560
uordblks     5218     5138
fordblks  1fc9580  1fc9660

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     1fce798  1fce798
ordblks         2        2
mxordblk  1fc9560  1fc9560
uordblks     5138     5138
fordblks  1fc9660  1fc9660

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     1fce798  1fce798
ordblks         2        2
mxordblk  1fc9560  1fc9560
uordblks     5138     5138
fordblks  1fc9660  1fc9660

user_main: FPU test
Starting task FPU#1
fpu_test: Started task FPU#1 at PID=10
FPU#1: pass 1
Starting task FPU#2
fpu_test: Started task FPU#2 at PID=11
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     1fce798  1fce798
ordblks         2        3
mxordblk  1fc9560  1fc7960
uordblks     5138     6748
fordblks  1fc9660  1fc8050

user_main: task_restart test

Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=12
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=12
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     1fce798  1fce798
ordblks         3        2
mxordblk  1fc7960  1fc6f60
uordblks     6748     7798
fordblks  1fc8050  1fc7000

user_main: waitpid test

Test waitpid()
waitpid_start_child: Started waitpid_main at PID=13
waitpid_start_child: Started waitpid_main at PID=14
waitpid_start_child: Started waitpid_main at PID=15
waitpid_test: Waiting for PID=13 with waitpid()
waitpid_main: PID 13 Started
waitpid_main: PID 14 Started
waitpid_main: PID 15 Started
waitpid_main: PID 13 exitting with result=14
waitpid_main: PID 14 exitting with result=14
waitpid_main: PID 15 exitting with result=14
waitpid_test: PID 13 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=15 with waitpid()
waitpid_last: PASS: PID 15 waitpid failed with ECHILD.  That may be
              acceptable because child status is dis...
Read more

qemu-riscv-nsh64-2024-11-11

11 Nov 00:33
Compare
Choose a tag to compare

Attempt 1
Test OK
1 Attempts Successful
Attempt 2
Test OK
2 Attempts Successful
Attempt 3
Test OK
3 Attempts Successful
Attempt 4
Test OK
4 Attempts Successful
Attempt 5
Test OK
5 Attempts Successful
Attempt 6
Test OK
6 Attempts Successful
Attempt 7
Test OK
7 Attempts Successful
Attempt 8
Test OK
8 Attempts Successful
Attempt 9
Test OK
9 Attempts Successful
Attempt 10
Test OK
10 Attempts Successful
Attempt 11
Test OK
11 Attempts Successful
Attempt 12
Test OK
12 Attempts Successful
Attempt 13
Test OK
13 Attempts Successful
Attempt 14
Test OK
14 Attempts Successful
Attempt 15
Test OK
15 Attempts Successful
Attempt 16
Test OK
16 Attempts Successful
Attempt 17
Test OK
17 Attempts Successful
Attempt 18
Test OK
18 Attempts Successful
Attempt 19
Test OK
19 Attempts Successful
Attempt 20
Test OK
20 Attempts Successful

Mon Nov 11 09:15:08 +08 2024
----- Download the latest NuttX build for 2024-11-11
Archive:  nuttx.zip
  inflating: nuttx                   
  inflating: nuttx.S                 
  inflating: nuttx.config            
  inflating: nuttx.hash              
  inflating: nuttx.manifest          
  inflating: nuttx.map               
  inflating: System.map              
Mon Nov 11 09:15:09 +08 2024
NuttX Source: https://github.com/apache/nuttx/tree/5e8f1eefb086fd6cb1a59453a4c350d4fd5e734c
NuttX Apps: https://github.com/apache/nuttx-apps/tree/ebc19a60ff5d32750384f5a99a315d5533d62058
total 163728
-rw-r--r--  1 luppy  wheel     48017 Nov 11 08:33 System.map
-rwxr-xr-x  1 luppy  wheel   3145528 Nov 11 08:33 nuttx
-rw-r--r--  1 luppy  wheel  68510174 Nov 11 08:33 nuttx.S
-rw-r--r--  1 luppy  wheel     48223 Nov 11 08:31 nuttx.config
-rw-r--r--  1 luppy  wheel       187 Nov 11 08:31 nuttx.hash
-rw-r--r--  1 luppy  wheel        27 Nov 11 08:33 nuttx.manifest
-rw-r--r--  1 luppy  wheel   2391522 Nov 11 08:33 nuttx.map
-rw-r--r--@ 1 luppy  wheel   9663783 Nov 11 08:33 nuttx.zip
-rwxr-xr-x@ 1 luppy  wheel      1296 Nov 11 09:15 qemu-riscv-nsh64.exp
NuttX Source: https://github.com/apache/nuttx/tree/5e8f1eefb086fd6cb1a59453a4c350d4fd5e734c
NuttX Apps: https://github.com/apache/nuttx-apps/tree/ebc19a60ff5d32750384f5a99a315d5533d62058
QEMU emulator version 9.1.1
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
===== Attempt 1
Mon Nov 11 09:15:10 +08 2024
spawn qemu-system-riscv64 -semihosting -M virt,aclint=on -cpu rv64 -bios none -kernel nuttx -nographic
ABC
NuttShell (NSH) NuttX-12.7.0
nsh> uname -a
NuttX 12.7.0 5e8f1eefb0 Nov 11 2024 00:32:33 risc-v rv-virt
nsh> free
      total       used       free    maxused    maxfree  nused  nfree name
   33351576       8328   33343248       9008   33343248     22      1 Umem
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 73 msec
nsh> hello
Hello, World!!
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 65 msec
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=9

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     1fce798  1fce798
ordblks         1        1
mxordblk  1fc9560  1fc9560
uordblks     5238     5238
fordblks  1fc9560  1fc9560

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     1fce798  1fce798
ordblks         1        1
mxordblk  1fc9560  1fc9560
uordblks     5238     5238
fordblks  1fc9560  1fc9560

user_main: libc tests

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena     1fce798  1fce798
ordblks         1        1
mxordblk  1fc9560  1fc9560
uordblks     5238     5238
fordblks  1fc9560  1fc9560
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     1fce798  1fce798
ordblks         1        2
mxordblk  1fc9560  1fc9560
uordblks     5238     5218
fordblks  1fc9560  1fc9580
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     1fce798  1fce798
ordblks         2        2
mxordblk  1fc9560  1fc9560
uordblks     5218     5138
fordblks  1fc9580  1fc9660

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     1fce798  1fce798
ordblks         2        2
mxordblk  1fc9560  1fc9560
uordblks     5138     5138
fordblks  1fc9660  1fc9660

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     1fce798  1fce798
ordblks         2        2
mxordblk  1fc9560  1fc9560
uordblks     5138     5138
fordblks  1fc9660  1fc9660

user_main: FPU test
Starting task FPU#1
fpu_test: Started task FPU#1 at PID=10
FPU#1: pass 1
Starting task FPU#2
fpu_test: Started task FPU#2 at PID=11
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     1fce798  1fce798
ordblks         2        3
mxordblk  1fc9560  1fc7960
uordblks     5138     6748
fordblks  1fc9660  1fc8050

user_main: task_restart test

Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=12
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=12
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     1fce798  1fce798
ordblks         3        2
mxordblk  1fc7960  1fc6f60
uordblks     6748     7798
fordblks  1fc8050  1fc7000

user_main: waitpid test

Test waitpid()
waitpid_start_child: Started waitpid_main at PID=13
waitpid_start_child: Started waitpid_main at PID=14
waitpid_start_child: Started waitpid_main at PID=15
waitpid_test: Waiting for PID=13 with waitpid()
waitpid_main: PID 13 Started
waitpid_main: PID 14 Started
waitpid_main: PID 15 Started
waitpid_main: PID 13 exitting with result=14
waitpid_main: PID 14 exitting with result=14
waitpid_main: PID 15 exitting with result=14
waitpid_test: PID 13 waitpid succeeded with stat_loc=0e00
waitpid_last: Waiting for PID=15 with waitpid()
waitpid_last: PASS: PID 15 waitpid failed with ECHILD.  That may be
              acceptable because child status is dis...
Read more