setvbuf test in ostest fails on MACOS with 'Illegal instruction: 4'
- Dominant language
- C
- Stars
- 4k
- Forks
- 1.7k
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 237
Description
Steps to reproduce:
1. `./tools/configure.sh sim:ostest`
2. `make -j8`
3. `./nuttx`
4. Observe next output
```
$ ./nuttx
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=4
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 3efffe8 3efffe8
ordblks 2 2
mxordblk 3eb98f0 3eb98f0
uordblks 466c8 466c8
fordblks 3eb9920 3eb9920
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 3efffe8 3efffe8
ordblks 2 2
mxordblk 3eb98f0 3eb98f0
uordblks 466c8 466c8
fordblks 3eb9920 3eb9920
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 3efffe8 3efffe8
ordblks 2 3
mxordblk 3eb98f0 3eb98f0
uordblks 466c8 466a8
fordblks 3eb9920 3eb9940
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 3efffe8 3efffe8
ordblks 3 3
mxordblk 3eb98f0 3eb98f0
uordblks 466a8 46618
fordblks 3eb9940 3eb99d0
tls: Successfully set 0
tls: Successfully set ffffffff
tls: Successfully set 55555555
tls: Successfully set aaaaaaaa
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 3efffe8 3efffe8
ordblks 3 3
mxordblk 3eb98f0 3eb98f0
uordblks 46618 46618
fordblks 3eb99d0 3eb99d0
user_main: setvbuf test
setvbuf_test: Test NO buffering
Illegal instruction: 4
```
The issue is not reproduced with `CONFIG_STDIO_DISABLE_BUFFERING=y`
Contributor guide
Assessment
This issue has not been assessed yet.