LWN.net Logo

Threads for LSB 2.0

From:  "Andrew Josey" <ajosey-AT-rdg.opengroup.org>
To:  lsb-wg-AT-freestandards.org
Subject:  Re: [Lsb-wg] Threads for LSB 2.0
Date:  Thu, 26 Feb 2004 15:27:12 +0000
Cc:  lsb-test-AT-linuxbase.org


A new cut of the VSTHlite test suite is available. I enclose the
announcement, release notes and the results obtained
on Red Hat Linux 9 together with some comments.
Further feedback most welcome.

regards
Andrew
-----------------------------------------------------


* LSB-VSTHlite1.0  Beta Release Available

The Open Group is pleased to announce the beta release of the LSB-VSTHlite
test suite.

This is now available at
http://www.opengroup.org/testing/lsb-test/lsb-vsthlite.html

This release is targeted for use with  LSB version 2.x testing and
certification. There are a number of bug fixes and configuration changes
over previous releases.

The test suite takes 30 minutes to configure install and
run. Please send any feedback to lsb-test:linuxbase-dot-org.


The release consists of the following files.

README.LSB-VSTHlite1.0	A Readme file
lsb-vsthlite-relnote.txt	Release notes
lts_vsthlite1.0a.tgz   The source code to the suite in gzip'd tar format
README			A generic README file
install.sh		The installation wrapper script
tet_vsxgen_3.01.tgz     The generic TET/VSXgen framework

Additional files are:

samplerun.txt	Output of a sample run showing how to install/configure/run
failures.txt    Failures on Red Hat Linux 9 (also appended)


The release notes follow below.

-------------------------------------------------------------------

                                 The Open Group
                             LSB-VSTHlite Release 1.0
                                 Release Notes

This document provides Release notes for the Verification suite for the
partial POSIX threads coverage for the Linux Standard Base.

1. Release Overview

LSB-VSTHlite 1.0-1  is a beta  release of this test suite for partial
POSIX threads test coverage for the Linux Standard Base.  LSB-VSTHlite 
is built using the VSXgen (the generic VSX test framework).
The test coverage corresponds approximately half of the complete
VSTH test suite from The Open Group.

This test suite has not yet been formally approved by the Linux Standard
Base team and no claims should be made of LSB conformance to this version
of the test suite.  The test assertions being tested are included with
the distribution in the MAN/tset directory.

This release is targeted for testing the LSB 2.x specification release
series and is not for use with LSB 1.3 or earlier.

1.1  Changes since the last release

The following changes have been made since the last
release:

	Use of sigismember for sigset_t comparisons rather than memcmp
	
	Default Parameter changes for tetexec.cfg

	Corrections to sysconf test case

	The header file tests are omitted from the default scenario since
	they are development environment tests and not part of the
	lsb-runtime test scenario.

	The TET version bundled with this release is updated to TET3.6.

1.2 Status

To install the test suite unwind the test files into
	/home/tet
and as root run the install.sh command
	sh ./install.sh

This will then prompt you for installation, accepting all the
defaults should work on most systems.

If you wish to test POSIX rather than LSB then you must select
POSIX96 test mode, and unset the LSB_TEST variable in
TESTROOT/tetexec.cfg.


2. Release Contents

The release consists of the following files.

README.LSB-VSX2.0	A Readme file
lsb-vsthlite-relnote.txt	Release notes
lts_vsthlite1.0a.tgz    The source code to the suite in gzip'd tar format
README			A generic README file
install.sh		The installation wrapper script
tet_vsxgen_3.01.tgz     The generic TET/VSXgen framework


3. TET

LSB-VSX runs under TET3 (The Test Environment Toolkit test framework).
A suitable version of TET3 is bundled with the release.  The latest
release can also be obtained at:

           ftp://ftp.rdg.opengroup.org/pub/TET3/

TET3 must be configured  to build  as  the Lite version .  Do not use
the Distributed version.  For more information on TET , see
http://tetworks.opengroup.org .

4. Documentation

See the README file for instructions to install, configure and execute
the tests.

For more in depth information consult the User's Guide which provides
comprehensive information on the installation, configuration and use
of this test suite. 

5. Support

Support related questions and problem reports should be directed to by
email to lsb-test:linuxbase.org.

6. Size

The size of LSB-VSTHLITE when the  suite is built is approximately 15MB.  The
size of the compressed distribution is roughly 1.5 MB. When running the
complete test suite, journal files will be produced that are typically
less than 1MB in length, so its recommended that at least 20MB of disk
space be allowed for a test campaign.

7. Time

The test suite takes approximately 30 minutes to run depending on the
speed of the platform under test. 


Licensing information.

See the Licence file included in the distribution for licensing
information.  
-----
Andrew Josey 
Director of Certification                   
The Open Group


----
Failures on Red Hat Linux 9

0|3.6-lite 14:59:19 20040226|User: vsx0 (532) TCC Start, Command line: tcc -e -r FAIL,UNRESOLVED -s scen.exec -p results/0005e/journal
5|Linux skye.rdg.opengroup.org 2.4.20-9 #1 Wed Apr 23 14:45:57 PDT 2003 i686|System Information
20|/home/tet/test_sets/TESTROOT/tetexec.cfg 1|Config Start
30||TEST_MODE=UNIX98
30||TEST_PACKAGES= VSTHlite1.0
30||VSXDIR=/home/tet/test_sets/SRC
30||VSX_DBUG_FLAGS=
30||VSX_DBUG_FILE=/home/tet/test_sets/TESTROOT/dbug.out
30||VSX_NAME=
30||VSX_OPER=Unknown
30||VSX_ORG=Unknown
30||VSX_PATH=
30||VSX_SYS=Unknown
30||VSX_UID0=532
30||VSX_UID1=533
30||VSX_UID2=534
30||VSX_GID0=532
30||VSX_GID1=533
30||VSX_GID2=534
30||TET_SIG_IGN=
30||TET_SIG_LEAVE=
30||VSX_CC=/usr/bin/cc
30||VSX_CFLAGS=-ansi -I/usr/include/gdbm
30||VSX_LIBS=-lm
30||VSX_BLKDEV_FILE=/dev/sda
30||VSX_CHRDEV_FILE=/dev/tty
30||VSX_FCNTL_EDEADLK=Y
30||VSX_FCNTL_MAXLOCK=-1
30||VSX_INVALID_FCNTL_CMD=
30||VSX_INVALID_GID=unsup
30||VSX_INVALID_GNAME=fooxyz
30||VSX_INVALID_PNAME=foopqr
30||VSX_INVALID_UID=unsup
30||VSX_INVALID_WHENCE=-1
30||VSX_INVAL_SIG=-5
30||VSX_MOUNT_DEV=/dev/loop0
30||VSX_NOSPC_DEV=/dev/loop0
30||VSX_PURE_FILE=/home/tet/test_sets/TESTROOT/BIN/purefile
30||VSX_READDIR_EBADF=Y
30||VSX_ROFS=/dev/loop0
30||VSX_SIGSET_EINVAL=Y
30||VSX_SYS_OPEN_MAX=-1
30||VSX_TTYNAME=/dev/pts/3
30||VSX_TTYUSER=vsx0
30||VSX_ULIMIT_BLKS=2
30||VSX_UNLOCKABLE_FILE=unsup
30||VSX_UNUSED_GID=25000
30||VSX_UNUSED_UID=25000
30||VSX_TERMIOS_TTY=/dev/pts/XXX
30||VSX_TERMIOS_LOOP=/dev/pts/XXX
30||VSX_MASTER_TTY=/dev/ptmx
30||VSX_MASTER_LOOP=/dev/ptmx
30||VSX_TERMIOS_ASYNC=N
30||VSX_TERMIOS_BUFFERED=Y
30||VSX_TERMIOS_SPEED=B9600
30||VSX_MODEM_CONTROL=N
30||VSX_START_STOP_CHNG=Y
30||VSX_TCGETPGRP_SUPPORTED=Y
30||VSX_TCSETPGRP_SUPPORTED=Y
30||VSX_UNSUPPORTED_CFLAG=none
30||VSX_SUPPORTED_CFLAG=B50
30||PCTS_ECHOE=\b \b
30||PCTS_ECHOK=\025\n
30||VSTH_CFLAGS=
30||VSTH_LIBS=-lpthread
30||VSTH_VALID_GUARDSIZE=
30||VSTH_INVALID_GUARDSIZE=
30||VSTH_VALID_STACKSIZE=16384
30||VSTH_INVALID_STACKSIZE=512
30||VSTH_UPAO_EINVAL=N
30||VSTH_SIG_IGN=
30||VSTH_SELF_EDEADLK_DETECTED=Y
30||VSTH_REFERENTIAL_EDEADLK_DETECTED=Y
30||VSTH_DETACH_EINVAL=Y
30||VSTH_TID_ESRCH=Y
30||VSTH_SIG_EINVAL=Y
30||VSTH_INVALID_SIG=100
30||VSTH_UNSUPPORTED_SIG=100
30||VSTH_PS_EINVAL=
30||VSTH_PSHARED_EINVAL=
30||VSTH_TID_EINVAL=Y
30||VSTH_GETLOGIN_R_ERANGE=Y
30||VSTH_TTYNAME_R_ENOTTY=Y
30||VSTH_TTYNAME_R_ERANGE=Y
30||VSTH_READDIR_R_EBADF=Y
30||VSTH_ICONV_CODESET1=
30||VSTH_ICONV_CODESET2=
30||VSTH_SUPP_GID=535
30||TET_EXEC_IN_PLACE=True
30||TET_OUTPUT_CAPTURE=False
30||TET_API_COMPLIANT=True
30||TET_PASS_TC_NAME=False
30||TET_VERSION=3.6-lite
40||Config End
70||"total tests in PTHR.os 168"
10|0 /tset/PTHR.os/procenv/sysconf/T.sysconf 14:59:19|TC Start, scenario ref 36-0, ICs: {8}
15|0 3.6-lite 1|TCM Start
400|0 8 1 14:59:19|IC Start
200|0 8 14:59:19|TP Start
520|0 8 00004614 1 1|A call to sysconf(_SC_THREAD_PRIORITY_SCHEDULING) returns the value
520|0 8 00004614 1 2|of the system variable _POSIX_THREAD_PRIORITY_SCHEDULING.
520|0 8 00004614 1 3|Posix Ref: Component SYSCONF
520|0 8 00004614 1 4|Assertion 9945-1:1996 4.8.1.2-8(A)
520|0 8 00004614 1 5|_POSIX_THREAD_PRIORITY_SCHEDULING defined as 200112
520|0 8 00004614 1 6|Unexpected value for sysconf(_SC_THREAD_PRIORITY_SCHEDULING) returned -1
220|0 8 1 14:59:19|FAIL
410|0 8 1 14:59:19|IC End

** Looks like mismatch between header and sysconf


80|0 0 14:59:20|TC End, scenario ref 36-0
10|1 /tset/PTHR.os/procprim/pthread_sigmask/T.pthread_sigmask 14:59:20|TC Start, scenario ref 44-0, ICs: {8,9}
15|1 3.6-lite 2|TCM Start
400|1 8 1 14:59:20|IC Start
200|1 8 14:59:20|TP Start
520|1 8 00004615 1 1|When the argument oset is not NULL,
520|1 8 00004615 1 2|then a call to pthread_sigmask(how, set, oset) shall store the
520|1 8 00004615 1 3|previous signal mask of the calling thread in the location
520|1 8 00004615 1 4|specified by oset and return 0 if successful.
520|1 8 00004615 1 5|Posix Ref: Component PTHREAD_SIGMASK
520|1 8 00004615 1 6|Assertion 9945-1:1996 3.3.5.2-8(A)
520|1 8 00004615 2 1|NSIG=64, sigset element 33 differs got 0, expected 1
520|1 8 00004615 2 2|Signal sets do not match
520|1 8 00004615 2 3|00000000000010000000000000000000000000000000000000000000000000
520|1 8 00004615 2 4|00000000000010000000000000000000100000000000000000000000000000
520|1 8 00004615 3 1|Thread exitval, expected 0, got 2
220|1 8 1 14:59:20|FAIL
410|1 8 1 14:59:20|IC End
400|1 9 1 14:59:20|IC Start
200|1 9 14:59:20|TP Start
520|1 9 00004615 1 1|When the argument set is NULL,
520|1 9 00004615 1 2|then a call to pthread_sigmask(how, NULL, oset) shall not change
520|1 9 00004615 1 3|the signal mask of the calling thread and shall return 0
520|1 9 00004615 1 4|if successful.
520|1 9 00004615 1 5|Posix Ref: Component PTHREAD_SIGMASK
520|1 9 00004615 1 6|Assertion 9945-1:1996 3.3.5.2-9(A)
520|1 9 00004615 2 1|NSIG=64, sigset element 33 differs got 0, expected 1
520|1 9 00004615 2 2|Signal sets do not match
520|1 9 00004615 2 3|00000000000000000000000000000000000000000000000000000000000000
520|1 9 00004615 2 4|00000000000000000000000000000000100000000000000000000000000000
520|1 9 00004615 3 1|Thread exitval, expected 0, got 2
220|1 9 1 14:59:20|FAIL
410|1 9 1 14:59:20|IC End
80|1 0 14:59:21|TC End, scenario ref 44-0

** The signal mask appears to be different when it should be the same

10|2 /tset/PTHR.os/thread/pthread_create/T.pthread_create 14:59:21|TC Start, scenario ref 61-0, ICs: {4,14}
15|2 3.6-lite 2|TCM Start
400|2 4 1 14:59:21|IC Start
200|2 4 14:59:21|TP Start
520|2 4 00004618 1 1|A call to pthread_create(thread, attr, start_routine, arg)
520|2 4 00004618 1 2|creates a new thread with the attributes specified by attr
520|2 4 00004618 1 3|within the process containing the calling thread, stores
520|2 4 00004618 1 4|the thread identifier of the newly created thread in the
520|2 4 00004618 1 5|location referenced by thread, causes the newly created
520|2 4 00004618 1 6|thread to execute the routine referenced by start_routine
520|2 4 00004618 1 7|with arg as its sole argument, and returns 0 if successful.
520|2 4 00004618 1 8|Posix Ref: Component PTHREAD_CREATE
520|2 4 00004618 1 9|Assertion 9945-1:1996 16.2.2.2-4(A)
520|2 4 00004622 2 1|pthread_attr_setschedparam, expected 0, got 22
520|2 4 00004618 7 1|tet_fork, expected 0, got 1
220|2 4 2 14:59:21|UNRESOLVED
410|2 4 1 14:59:21|IC End
400|2 14 1 14:59:21|IC Start
200|2 14 14:59:21|TP Start
520|2 14 00004618 1 1|If the feature test macro _POSIX_THREAD_PRIORITY_SCHEDULING
520|2 14 00004618 1 2|is defined:
520|2 14 00004618 1 3|when the inheritsched attribute of the thread attribute object
520|2 14 00004618 1 4|referenced by attr has the value PTHREAD_EXPLICIT_SCHED,
520|2 14 00004618 1 5|then any thread created by a call to
520|2 14 00004618 1 6|pthread_create(thread, attr, start_routine, arg) has its
520|2 14 00004618 1 7|scheduling policy and associated attributes set to the
520|2 14 00004618 1 8|corresponding values from the attributes object.
520|2 14 00004618 1 9|Posix Ref: Component PTHREAD_CREATE
520|2 14 00004618 1 10|Assertion 9945-1:1996 13.5.1.2-14(C)
520|2 14 00004627 0 0|Scheduling policy, expected 2, got 0
520|2 14 00004627 0 1|Scheduling priority, expected 1, got 0
520|2 14 00004627 2 1|Thread exitval, expected 0, got 2
520|2 14 00004618 4 1|tet_fork, expected 0, got 2
220|2 14 1 14:59:21|FAIL
410|2 14 1 14:59:21|IC End
80|2 0 14:59:22|TC End, scenario ref 61-0
10|3 /tset/PTHR.os/thread/pthread_detach/T.pthread_detach 14:59:22|TC Start, scenario ref 62-0, ICs: {4}
15|3 3.6-lite 1|TCM Start
400|3 4 1 14:59:22|IC Start
200|3 4 14:59:22|TP Start
520|3 4 00004630 1 1|If the implementation detects that the thread specified by the thread
520|3 4 00004630 1 2|parameter in a call to pthread_detach(thread) can not be found:
520|3 4 00004630 1 3|a call to pthread_detach(thread) shall fail and return ESRCH.
520|3 4 00004630 1 4|Posix Ref: Component PTHREAD_DETACH
520|3 4 00004630 1 5|Assertion 9945-1:1996 16.2.4.4-4(C)
520|3 4 00004631 2 1|pthread_detach, expected 3, got 0
520|3 4 00004630 4 1|tet_fork, expected 0, got 2
220|3 4 1 14:59:22|FAIL
410|3 4 1 14:59:22|IC End
80|3 0 14:59:23|TC End, scenario ref 62-0
10|4 /tset/PTHR.os/thread/pthread_exit/T.pthread_exit 14:59:23|TC Start, scenario ref 64-0, ICs: {3}
15|4 3.6-lite 1|TCM Start
400|4 3 1 14:59:23|IC Start
200|4 3 14:59:23|TP Start
520|4 3 00004634 1 1|An implicit call to pthread_exit() is made when a thread other
520|4 3 00004634 1 2|than the thread in which main() was first invoked returns from
520|4 3 00004634 1 3|the start routine that was used to create it.
520|4 3 00004634 1 4|Posix Ref: Component PTHREAD_EXIT
520|4 3 00004634 1 5|Assertion 9945-1:1996 16.2.5.2-3(A)
520|4 3 00004634 3 1|T3_cflag, expected 2, got 0
220|4 3 1 14:59:23|FAIL
410|4 3 1 14:59:23|IC End
80|4 0 14:59:24|TC End, scenario ref 64-0
10|5 /tset/PTHR.os/thread/pthread_join/T.pthread_join 14:59:24|TC Start, scenario ref 65-0, ICs: {5}
15|5 3.6-lite 1|TCM Start
400|5 5 1 14:59:24|IC Start
200|5 5 14:59:24|TP Start
520|5 5 00004636 1 1|When the thread referenced by the thread argument does not exist,
520|5 5 00004636 1 2|then a call to pthread_join(thread, value_ptr) shall fail
520|5 5 00004636 1 3|and return ESRCH.
520|5 5 00004636 1 4|Posix Ref: Component PTHREAD_JOIN
520|5 5 00004636 1 5|Assertion 9945-1:1996 16.2.3.4-5(A)
520|5 5 00004637 2 1|pthread_join, expected 22, got 0
520|5 5 00004636 4 1|tet_fork, expected 0, got 2
220|5 5 1 14:59:24|FAIL
410|5 5 1 14:59:24|IC End
80|5 0 14:59:25|TC End, scenario ref 65-0
10|6 /tset/PTHR.os/threadattr/pthread_attr_init/T.pthread_attr_init 14:59:25|TC Start, scenario ref 80-0, ICs: {1}
15|6 3.6-lite 1|TCM Start
400|6 1 1 14:59:25|IC Start
200|6 1 14:59:25|TP Start
520|6 1 00004640 1 1|A call to pthread_attr_init(attr) initialises the attributes
520|6 1 00004640 1 2|object specified by attr with the default value for all the individual
520|6 1 00004640 1 3|attributes used by a given implementation and returns 0 if successful.
520|6 1 00004640 1 4|Posix Ref: Component PTHREAD_ATTR_INIT
520|6 1 00004640 1 5|Assertion 9945-1:1996 16.2.1.2-1(A)
520|6 1 00004640 1 6|Default inheritsched attribute is PTHREAD_INHERIT_SCHED
520|6 1 00004640 1 7|Default scheduling policy is SCHED_OTHER
520|6 1 00004640 1 8|Default scheduling scope is PTHREAD_SCOPE_SYSTEM
520|6 1 00004640 1 9|pthread_attr_getstackaddr, expected 0, got 22
520|6 1 00004640 1 10|Default stack size is 8388608
520|6 1 00004640 1 11|Default priority is 0
220|6 1 2 14:59:25|UNRESOLVED
410|6 1 1 14:59:25|IC End
80|6 0 14:59:26|TC End, scenario ref 80-0
900|14:59:26|TCC End

** This last one pthread_attr_getstackaddr fails although the attributes
are valid. It appears that the implementation will not succeed without
a prior call to pthread_attr_setstackaddr. 


(Log in to post comments)

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds