/******************************************************************************/ /* */ /* Copyright (c) International Business Machines Corp., 2007 */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */ /* the GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* */ /******************************************************************************/ realtime tests is an open-source testsuite for testing real-time Linux. It is licensed under the GPL. The latest version of this testsuite is available from http://rt.wiki.kernel.org. This testsuite is maintained by the IBM Real-Time team. Please send bug reports, contributions, questions to the discussion list also available at: http://rt.wiki.kernel.org. The testsuite contains some functional tests and a few performance and latency measurement tests. This is still a work in (early) progress! DEPENDENCIES ============ The testsuite expects glibc ("C" library) (version 2.4 onwards) and the underlying kernel (version 2.6.18 onwards) to support Robust and Priority Inheritance (PI) Mutexes. Most of the tests need the user to have a privileges that allow him/her to create SCHED_FIFO threads of priorities upto 99 RUNNING TESTS THROUGH LTP ========================= Simplest method to run realtime tests through LTP is: The command will configure,build and run tests specified through argument provided to the script. Run command below from LTP root directory with argument: $./testscripts/test_realtime.sh -t $arg or $./test_realtime.sh -t $arg # From $LTPROOT/testscripts directory Here $arg takes values as : func = all functional tests will be run " stress = all stress tests will be run " perf = all perf tests will be run " all = all tests will be run " list = all available tests will be listed " clean = all logs deleted, make clean performed " test_name = only test_name subdir will be run (e.g: func/pi-tests) " BUILD ===== To build the tests execute the following command: $make RUNNING THE TESTS ================== The top level script run.sh can be used to invoke all or a subset of tests. 1. Running the script with no arguments will list usage: $run.sh 2. Running the script with the list option will list the available tests. $run.sh -t list Note that the tests available are determined by the presence of a local script run_auto.sh in the individual test subdirectories at this time. 3. Individual tests can also be run. For example, to run the prio-wake tests for 20 iterations: $run.sh -t func/prio-wake -l 20 Note, the test must be specified with the path relative to the test home (where run.sh lives). 4. Alternatively, you can run the individual tests from their local directory. For example, to run the prio-wake tests: $cd func/prio-wake $./run_auto.sh 5. You can also run sets of tests: $run.sh -t func will run all the functional tests once $run.sh -t perf -l 3 will run all the perf tests (if any!) thrice Use the -h option to see the various arguments taken. 6. Or you can run the binaries... RESULTS ======= All the automated run scripts set up logging in the logs/ directory. Not all the tests have a clear PASS/FAIL outcome quite yet. Work on parsing results is ongoing.