/posixtestsuite

Open POSIX Test Suite branched for Emscripten.

Primary LanguageCGNU General Public License v2.0GPL-2.0

SECTIONS:
1. Open POSIX* Test Suite Overview
2. Design Goals
3. Implementation
4. Developer Docs & Resources
5. How to Contribute
6. Who are you?
7. Disclaimer
8. Running Emscripten pthreads tests



1. Open POSIX* Test Suite Overview
-----------------------------------

The POSIX Test Suite is an open source test suite with the goal of
performing conformance, functional, and stress testing of the IEEE
1003.1-2001 System Interfaces specification in a manner that is
agnostic to any given implementation.

While active development and testing is currently happening on Linux,
our choice of portable tools should make this test suite usable on any
POSIX operating system.

All code is distributed under the GNU General Public License v2.  A
copy of this license is contained in the COPYING file.

This document gives a brief overview of the test suite, including its
design goals, implementation, and how to contribute.  Within these
sections, we describe where to find more detailed information.

2. Design Goals
----------------
This project was created with the following design goals:
- Enable assertion based traceability for conformance testing of POSIX
  specifications.  We wanted to capture enough data to make deterministic
  statements about our coverage of the POSIX specification.

- Give the ability to send test case source to bug reports to appropriate 
  open source projects when our test cases revealed bugs in those projects.
  (Meaning we wanted fairly simple, self-contained test cases which
  illuminated a single failure.)

- Make it easy for test cases to be contributed.

3. Implementation
------------------

This project will cover conformance, functional, stress, performance,
and speculative testing.  Conformance, functional, and stress tests are
the only tests formally documented and enabled by our framework, with our 
focus mainly on conformance; however, the other types of testing will be 
added as the need arises.

For more information on these types of testing, under 'Documenation' see:
HOWTO_ConformanceTest - info on creation and structure of conformance tests
HOWTO_Functional-     - info on creation and structure of functional
  StressTest            and stress tests

For additional information on how to build and run the tests in this
suite, see Documentation/HOWTO_RunTests.


4. Developer Docs & Resources
------------------------------

The following files give developers information on how to write test
cases for the project (under Documentation):
HOWTO_Assertions      - describes format of the assertions files used to
                        map test case descriptions to test cases
HOWTO_BoundaryTest    - information about testing boundary conditions
HOWTO_CodingGuidelines- describes coding guidelines for this project
HOWTO_Coverage        - describes format of COVERAGE.<area> files
HOWTO_DefinitionsTest - ideas behind testing POSIX header files
HOWTO_ResultCodes     - standardized return codes for tests
HOWTO_Tagging         - describes how to tag files for inclusion in a release

For additional information on how to build and run the tests in this
suite, see HOWTO_RunTests.

5. How to Contribute
---------------------

* Patches welcome!

* When you create a new test, please fill out an assertion description
  if none is available. Create a simple C [.c] or shell script [.sh]
  snippet that exploits the assertion and returns 0 or !0
  [passes/fails]. 

  Please name the file after the assertion it tests-dash-the number of
  the test [up to you, we can do the naming for you also].

  The code snippets need to be as simple as possible, for the sake of
  all. Please start them with a commentary briefly describing how
  you will test the assertion. The idea is that at the end, we can have
  automatic tools extracting the data from the XML and source files to
  generate reports.


6. Who are you?
---------------

We are the ones currently developing this:

julie.n.fleischer REMOVE-THIS AT intel DOT com
rusty.lynch REMOVE-THIS AT intel DOT com
geoffrey.r.gustafson REMOVE-THIS AT intel DOT com
inaky.perez-gonzalez REMOVE-THIS AT intel DOT com
rolla.n.selbak REMOVE-THIS AT intel DOT com
majid.awad REMOVE-THIS AT intel DOT com
salwan.searty REMOVE-THIS AT intel DOT com
sunyi REMOVE-THIS AT users DOT sourceforge DOT net

Some like to say 'Nih!' from time to time ...


7. Disclaimer
--------------
The Open POSIX Test Suite is not affiliated with the IEEE or The Open Group.

* POSIX (R) is a registered trademark of the IEEE

8. Running Emscripten pthreads tests
------------------------------------

This github repository adds Emscripten testing harness for pthreads. To run the Emscripten pthreads tests, perform the following:

1. Set the environment EMSCRIPTEN_BROWSER to point to the executable of the target browser to run the test suite in.
2. Close all existing instanced of Firefox tabs and processes, because the test runner will forcibly terminate browser processes during the run.
3. Navigate to /path/to/posixtestsuite/conformance/interfaces/ as the current directory.
4. Run '/path/to/posixtestsuite/emcc/run_all_tests.py'. This will run all the tests found in the subdirectories of the current working directory.