apache / apache/nuttx

setvbuf test in ostest fails on MACOS with 'Illegal instruction: 4'

Open
#9,674 11 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.