Posix result

From Yocto Project
Jump to navigationJump to search

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 blacksand beagleboard routerstation
1.1 M1 n/a n/a n/a 50 48
1.0-M2 (*) 1744 1744 1745 1750 1753 1753 1744 1755 1754
*: 1.0-M2 misses some link flags, and thus many unexpected link failures observed

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/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 84

Previous milestone

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