LSB Runtime Certification Test Suite Frequently Asked Questions

Last Updated : Dec 28 2005: lsb-runtime-faq.html

This is the Frequently Asked Questions file for the LSB Runtime Certification Test Suite. Its maintainer is Andrew Josey. Suggestions and contributions are always welcome, post them to the lsb-test mailing list.

This document can be found on the world wide web at http://www.linuxbase.org/test/lsb-runtime-test-faq.html.

This article includes answers to the following.

General Questions section

Q1.0 What is the LSB Runtime test suite? How long does it take to run?
Q1.1 Why is it a binary rpm?
Q1.2 Where can I download the test suite from? Where do I get information on how to run it?
Q1.3 What is the License?
Q1.4 How do I become a participant in LSB testing?
Q1.5 Can I run the tests with NIS or LDAP enabled?
Q1.6 Can I run the tests by logging in via su ?
Q1.7 I installed the package providing the lsb dependency after the test suite, is this ok?
Q1.8 The sigconcept and sigsuspend tests appear to have hung. Is this a known problem?
Q1.9 Do shadow passwords need to be enabled?
Q1.10 Some tests results say FIPS?
Q1.11 What do the various tests results mean, which equate to PASS/FAIL?
Q1.12 What does "F" and "M" from the test report mean?
Q1.13 Is theruntime test intelligent enough to determine which library version they are running against?

Code fixes section

Q2.1. Where can a conforming version of Pax be obtained from?
Q2.2. Are there any known fixes for miscellaneous test failures?
Q2.3. I cannot build the pseudolanguages from source

Troubleshooting section

Q3.1. I get execution errors referencing a missing ls-lsb.so.1 interpreter.
Q3.2 Is there a user guide for using the lsb-runtime test suite?
Q3.3 How can I run just a single test case?
Q3.4 How can I just run tests that failed?


Q1.0 What is the LSB Runtime test suite? How long does it take to run?

This is now a set of binary test suites (supplied in RPM format) for testing LSB runtime environments for conformance to the LSB Specifications.

It comprise a large test suite for core interfaces known as the lsb-runtime test , and a number of additional test suites packaged as separate rpms.

Typical time for a single run of the main test suite is approximately 7 hours on a uniprocessor machine. The other tests take minutes rather than hours to run.

For LSB 3.0 the tests include lsb-runtime for the core library and OS tests, lsb-c++ for the C++ functionality, and lsb-vsw4 for the X Window System functionality. Note that the lsb-pam test suite for Pluggable Authentication Modules is included in lsb-runtime for LSB 3.0 testing.

Q1.1 Why is it a binary rpm?

LSB conformance is about binary systems and application binary interfaces, hence formal testing uses a binary rpm. Installation of Rpm package formats are required to be supported on LSB runtime environments.

A source version of the test suites are also available for development and general quality assurance testing.

Q1.2 Where can I download the testsuites from? And where can I find information on how to run the tests?

The tests (both the binary rpm and the source versions) can be obtained from: http://www.linuxbase.org/download/#test_suites.

Information on how to run the runtime tests, and other test tools in the LSB test program are at: http://www.linuxbase.org/test/lsb_test_1.1.html.

Q1.3 What is the License?

See the copyright notice on the test suites and the licenses displayed during installation of the source version. These are primarily under a modified Artistic License .

Q1.4 How do I become a participant in LSB testing?

See the information about the LSB pilot certification program.

URL: http://www.linuxbase.org/test/pilot/.

Q1.5 Can I run the tests with NIS or LDAP enabled?

No, NIS and LDAP need to be disabled, since some tests for the LSB.usergroups test suite and/or the tests for "unused userids" fail.

Q1.6 Can I run the tests by logging in via su ?

If you login using "su - vsx0; run_tests", you will find some tests fail. You need to login to the machine either using telnet localhost, or slogin localhost.

Q1.7 I installed the package providing the lsb dependency after the test suite, is this ok?

No. If you first install lsb-runtime-test and then the package providing the "lsb" dependency (as required by the spec (see below for LSB2.x and on)) then the postinstall script from lsb-runtime-test will have failed . Ensure you install the "lsb" dependency package first, or reinstall lsb-runtime-test again.

Note for LSB 2.x and on the dependencies required for a runtime environment are "lsb-core" and "lsb-graphics".

Q1.8 The sigconcept and sigsuspend tests appear to have hung. Is this a known problem?

These test cases take a long time to run, they are checking for behavior when signals and alarms occur or timeout. The sigconcept test case typically can take over 100 minutes, and the sigsuspend test over 60 minutes. Note that in LSB 2.0 we have attempted to reduce the time needed.

Q1.9 Do shadow passwords need to be enabled?

Yes, shadow passwords need to be enabled to successfully pass some of the tests in the LSB-USERSGROUPS test suite.

If you have the shadow package installed on your system, you might need just to run the pwconv command.

Q1.10 Some tests results say FIP (futher information provided)?

These FIP results occur when by default the test suite is unable to determine whether a result is a PASS or FAIL. For LSB Certification you have to sign these off as resolving to pass when you submit your test results into the web certification system.

Q1.11 What do the various tests results mean, which equate to PASS/FAIL?

An explanation of the result codes follows below:

Q1.12 What does "F" and "M" from the test report mean?

F is for function, M is for macro. The OS testset driver automatically generates tests for the macro versions of an interface in addition to the underlying Function . In general not many function interfaces are implemented as macros hence the high NOTINUSE count in that column.

Q1.13 Is the runtime test intelligent enough to determine which library version they are running against?

  1. the tests are not library-specific that way
  2. for libraries where there's a change in so-version, the tests won't even run if the correct library isn't present
  3. the rest of this job is handled by lsblibchk


Section 2 - Code fixes for LSB conformance

Please note that these fixes are unofficial, provided by the community, these were primarily for LSB 1.2 certification, they are not known to be required these days, your mileage may vary...

Q2.1 Where can a conforming version of Pax be obtained from?

A conforming version of pax can be obtained from ftp://ftp.suse.com/pub/people/kukuk/pax/

Q2.2. Are there any known fixes for miscellaneous test failures?

Q2.3. I cannot build the pseudolanguages from source


Section 3 - Troubleshooting

Q3.1 I get execution errors referencing a missing ls-lsb.so.x interpreter.

After installing the test suite I get the following error when trying to execute them (note for LSB 2.x the interpreter is ld-lsb.so.2).

/home/tet/bin/tcc: /lib/ld-lsb.so.1: bad ELF interpreter: No such file
or directory.
Failed to execute the test suites correctly.
Either they are not installed properly or you may be
missing the lsb linker /lib/ld-lsb.so.1 on your system.

You need to ensure that the system is configured to support a conforming LSB Runtime Environment. In some cases, this will require installation of the appropriate rpm package, for example on the initial version of Fedora Core 1 this is the package redhat-lsb-1.3-1. If you want to test a system that does not provide the LSB runtime linker, you can normally just create a symbolic link to the standard linux linker. eg:

ln -s /lib/ld-linux.so.2 /lib/ld-lsb.so.1
Or for LSB 2.x

ln -s /lib/ld-linux.so.2 /lib/ld-lsb.so.2

Note that for LSB 1.3 and later for certified runtime environments you can check the associated LSB Conformance Statement since this has a question on what is needed to configure the system to provide a conforming runtime environment. See here for the register of LSB certified products (the final column has a link to the conformance statement for each registered product) .

Another potential cause of this error message is if you have installed the rpm but later moved the files into another area (say for disk space reasons) and symlinked the hierarchy back in (eg any part of /home/tet/test_sets is a symlink). This will result in TET being unable to find a default testset to execute and generate the error message above.

Q3.2 Is there a user guide for using the lsb-runtime test suite?

A pdf guide which includes the core test sets is provided by The Open Group at http://www.opengroup.org/infosrv/lsb/ogdeliverables/docs/. It should be noted that this explains in detail how to build and configure the source versions of the test suites and thus is most suitable if you wish to do detailed debugging of problems. Since the test suites are provided as binary rpms the configurations are preset.

Q3.3 How can I run a single test case?

The lowest level of granularity in the lsb-runtime test allows you to execute individual tests. Most tests can be executed in this way, but some are dependent upon execution of earlier tests in the testset, in which case only groups of dependent tests may be executed as a single unit.

A way to perform a one-off execution of selected testcases from a single testset can be performed using the -l option of tcc. For example:


tcc -e -l /tset/POSIX.os/ioprim/write/T.write{3,7,8}

Q3.4 How can I just run tests that failed?

In order to execute testsets which failed during a previous run, use

tcc -e -r code-list other-options old-journal-file 

where code-list is a comma-separated list of result codes to be re-executed, other-options are the other tcc options (e.g., -y or -n) and old-journal-file is the journal file from which the codes are extracted. For example, to re-execute all the tests that failed with FAIL, UNRESOLVED and UNINITIATED codes from journal file results/0002e/journal, use the following command:

cd results 
tcc -e -r FAIL,UNRESOLVED,UNINITIATED -s ../scen.exec 0002e/journal

Q3.5 How can I execute a test directly without tcc?

When debugging tests it is sometimes useful to execute them directly instead of under the control of tcc. When tests are executed in this way the current directory must be the location of the testset executable file. Also the variables TET_CONFIG and TET_CODE must be set in the environment. Once the tests have been executed the results are found in a file called tet_xres. For example to execute the tests for write() directly you would use the commands:

TET_CONFIG=$TET_EXECUTE/tetexec.cfg 
TET_CODE=$HOME/tet_code 
export TET_CONFIG TET_CODE 

cd $TET_EXECUTE/tset/POSIX.os/ioprim/write 
./T.write 
more tet_xres

This will execute all the tests in the testset. If you want to execute only specified testcases, give the testcase list as an argument:

./T.write 1-3,7

QXX. How do I add a question to this FAQ?

Send the question (preferably with a proposed answer) to Andrew Josey or the lsb-test mailing list.