Posix result
Introduction
The Open POSIX* Test Suite is an open source test suite with the goal of performing conformance, functional, stress, and performance testing of the functions described in the IEEE Std 1003.1-2001 System Interfaces specification. Eventual testing of the full specification is desired (http://posixtest.sourceforge.net/)
Similar to [LTP result], embedded linux distribution is highly customized for a specific purpose, and thus both the kernel and base environment may not satisfy the posix requirement. So the major purposes of this work are:
- to understand the reasons for existing posix failures. If the cause is from a specific package itself, go to fix it. Or else if the error simply come from the fact that a given package doesn't exist in current profile, add the explanation here
- to track poix test results cross Yocto releases, and ensure a declining error number for same profile
- to be the reference if Yocto users want to get a base picture
There is one bugzilla entry related: http://bugzilla.pokylinux.org/show_bug.cgi?id=172
Overall trend
Overall trend tends to track the change of posix test results along with Yocto's progress.
In below table we list total POSIX failures for each architectures in each milestone: (now this wiki doesn't allow upload files. So for detail logs please refer to earlier bug link)
Milestone | qemux86 | qemu-x86_64 | qemuppc | qemuarm | qemumips | atom-pc | sugarbay | blacksand | beagleboard | routerstation | mpc8315e-rdb |
1.1 M2 | n/a | n/a | n/a | 31 | 26 | ||||||
1.1 M1(**) | n/a | n/a | 33 | 49 | 45 | n/a | 50 | 48 | 46 | 84 | 48 |
1.0-M2 (*) | 1744 | 1744 | 1745 | 1750 | 1753 | 1753 | n/a | 1744 | 1755 | 1754 | n/a |
*: 1.0-M2 misses some link flags, and thus many unexpected link failures observed **: 1.1 M1 has gcc upgrade from 4.5.1 to 4.6.1, which has two new options, -Wunused-but-set-variable and -Waddress enabled by default. They casused many cases failed. We need add -Wno-unused-but-set-variable and -Wno-address to fix the problems.
general tips:
- use "-m 512" to launch the qemu targets
- make sure below line is uncommented in LDFLAGS file:
#-D_XOPEN_SOURCE=600 -lpthread -lrt -lm
- don't test AIO as the test cases themselves have compilation warnings which are treated as errors (use 'exit' while doesn't include stdlib.h)
Current Milestone (1.1/M2)
environment
OpenPOSIX version: posixtestsuite-1.5.2.tar
Profile: poky-image-sdk
run command: ./run_tests [MEM|MSG|SEM|SIG|THR|TMR|TPS]
result
Status | sugarbay | blacksand | qemuppc | qemuarm | qemumips | mpc8315e-rdb | beagleboard | routerstation |
failures | 31 | 26 |
Previous milestone
Current Milestone (1.1/M1)
environment OpenPOSIX version: posixtestsuite-1.5.2.tar
Profile: poky-image-sdk
run command: ./run_tests [MEM|MSG|SEM|SIG|THR|TMR|TPS]
result
Status | sugarbay | blacksand | qemuppc | qemuarm | qemumips | mpc8315e-rdb | beagleboard | routerstation |
failures | 50 | 48 | 33 | 49 | 45 | 48 | 46 | 84 |
Yocto 1.0 M2
environment OpenPOSIX version: posixtestsuite-1.5.2.tar
Profile: poky-image-sdk
run command: ./run_tests [AIO|MEM|MSG|SEM|SIG|THR|TMR|TPS]
result
Status | qemux86 | qemu-x86_64 | qemuppc | qemuarm | qemumips | atom-pc | blacksand | beagleboard | routerstation |
failures | 1744 | 1744 | 1745 | 1750 | 1753 | 1753 | 1744 | 1755 | 1754 |
The major problem for high failure numbers here is due to one environmental issue. It's suggested to uncomment below line from LDFLAGS file:
#-D_XOPEN_SOURCE=600 -lpthread -lrt -lm
libpthread and librt are critical for posix interface test. Without doing this the majority of the failures are link failures being failed to find necessary libraries.
My quick test on qemux86 shows that the failure could be reduced a lot to <200 in a rough run
Based on above fact, no more analysis is done on 1.0-M2 posix results. The thorough analysis will be postponed to 1.0-M3 which will use the right test steps and newer 2.6.37 kernel