1 /******************************************************************************/ 2 /* */ 3 /* Copyright (c) International Business Machines Corp., 2007 */ 4 /* */ 5 /* This program is free software; you can redistribute it and/or modify */ 6 /* it under the terms of the GNU General Public License as published by */ 7 /* the Free Software Foundation; either version 2 of the License, or */ 8 /* (at your option) any later version. */ 9 /* */ 10 /* This program is distributed in the hope that it will be useful, */ 11 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 12 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */ 13 /* the GNU General Public License for more details. */ 14 /* */ 15 /* You should have received a copy of the GNU General Public License */ 16 /* along with this program; if not, write to the Free Software */ 17 /* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ 18 /* */ 19 /******************************************************************************/ 20 21 realtime tests is an open-source testsuite for testing real-time Linux. It is 22 licensed under the GPL. The latest version of this testsuite is available 23 from http://rt.wiki.kernel.org. This testsuite is maintained by the IBM 24 Real-Time team. Please send bug reports, contributions, questions to 25 the discussion list also available at: http://rt.wiki.kernel.org. 26 27 The testsuite contains some functional tests and a few performance 28 and latency measurement tests. This is still a work in (early) progress! 29 30 31 DEPENDENCIES 32 ============ 33 The testsuite expects glibc ("C" library) (version 2.4 onwards) and 34 the underlying kernel (version 2.6.18 onwards) to support 35 Robust and Priority Inheritance (PI) Mutexes. 36 37 Most of the tests need the user to have a privileges that allow 38 him/her to create SCHED_FIFO threads of priorities upto 99 39 40 RUNNING TESTS THROUGH LTP 41 ========================= 42 Simplest method to run realtime tests through LTP is: 43 The command will configure,build and run tests specified through 44 argument provided to the script. 45 46 Run command below from LTP root directory with argument: 47 48 $./testscripts/test_realtime.sh -t $arg 49 50 or 51 52 $./test_realtime.sh -t $arg # From $LTPROOT/testscripts directory 53 54 Here $arg takes values as : 55 56 func = all functional tests will be run " 57 stress = all stress tests will be run " 58 perf = all perf tests will be run " 59 all = all tests will be run " 60 list = all available tests will be listed " 61 clean = all logs deleted, make clean performed " 62 test_name = only test_name subdir will be run (e.g: func/pi-tests) " 63 64 65 BUILD 66 ===== 67 To build the tests execute the following command: 68 69 $make 70 71 72 RUNNING THE TESTS 73 ================== 74 The top level script run.sh can be used to invoke all or a subset of tests. 75 76 1. Running the script with no arguments will list usage: 77 78 $run.sh 79 80 81 2. Running the script with the list option will list the available tests. 82 83 $run.sh -t list 84 85 Note that the tests available are determined by the presence 86 of a local script run_auto.sh in the individual test subdirectories 87 at this time. 88 89 90 3. Individual tests can also be run. For example, to run the prio-wake tests 91 for 20 iterations: 92 93 $run.sh -t func/prio-wake -l 20 94 95 Note, the test must be specified with the path relative to the test 96 home (where run.sh lives). 97 98 99 4. Alternatively, you can run the individual tests from their local directory. 100 For example, to run the prio-wake tests: 101 102 $cd func/prio-wake 103 $./run_auto.sh 104 105 106 5. You can also run sets of tests: 107 108 $run.sh -t func 109 110 will run all the functional tests once 111 112 $run.sh -t perf -l 3 113 114 will run all the perf tests (if any!) thrice 115 116 Use the -h option to see the various arguments taken. 117 118 6. Or you can run the binaries... 119 120 121 122 RESULTS 123 ======= 124 All the automated run scripts set up logging in the logs/ directory. Not all 125 the tests have a clear PASS/FAIL outcome quite yet. Work on parsing results 126 is ongoing. 127 128