Tree [c3b47f] 20120104 / tools /
 History



File Date Author Commit
 apicmds 2012-01-02 Mike Frysinger Mike Frysinger [0ea22a] gitignore: split into subdirs a bit
 build 2010-12-19 Garrett Cooper Garrett Cooper [1e6f5a] Resolving all compile errors via a script
 genload 2012-01-02 Mike Frysinger Mike Frysinger [0ea22a] gitignore: split into subdirs a bit
 mkrootfs 2009-08-23 subrata_modak subrata_modak [29e137] Spelling fixes: commad => command: Signed-off-b...
 netpipe-2.4 2010-12-19 Garrett Cooper Garrett Cooper [1e6f5a] Resolving all compile errors via a script
 netpipe-2.4-ipv6 2010-12-19 Garrett Cooper Garrett Cooper [1e6f5a] Resolving all compile errors via a script
 pounder21 2011-12-13 Garrett Cooper Garrett Cooper [848c13] Merge branch 'master' of ssh://ltp.git.sourcefo...
 scripts 2008-07-26 subrata_modak subrata_modak [8dfa1b] Addition of move_pages() syscall tests. The upd...
 strace_test 2004-02-17 zhanga zhanga [4ff98a] Robbie removed the binary strace file.
 top-LTP 2010-12-19 Garrett Cooper Garrett Cooper [1e6f5a] Resolving all compile errors via a script
 .gitignore 2012-01-02 Mike Frysinger Mike Frysinger [0ea22a] gitignore: split into subdirs a bit
 Makefile 2010-11-22 Garrett Cooper Garrett Cooper [ccecde] Merge remote branch 'origin' into ltp-broom
 README 2002-04-04 iyermanoj iyermanoj [5e1abf] Jay Huie's README on the LTP automation scripts.
 STPfailure_report.pl 2004-04-28 robbiew robbiew [f0573f] Added tool for analyzing failures from LTP runs...
 autoltp 2002-07-10 martinjn martinjn [0817e8] LTP automation script that uses sftp/ssh instea...
 create_dmesg_entries_for_each_test.pl 2010-07-02 Garrett Cooper Garrett Cooper [b5087a] Merge branch 'pu'
 create_kernel_faults_in_loops_and_probability.pl 2010-01-28 yaberauneya yaberauneya [73e23f] Convert from tools/ to bin/.
 create_valgrind_check.pl 2009-08-26 subrata_modak subrata_modak [9ecbf1] Integrate Valgrind Memory Check Tool to LTP: In...
 genhtml.pl 2009-10-13 yaberauneya yaberauneya [7ef2c6] The output format for tst_res.c changed in rev ...
 gethost.c 2010-12-19 Garrett Cooper Garrett Cooper [1e6f5a] Resolving all compile errors via a script
 html_report_header.txt 2009-06-09 subrata_modak subrata_modak [f6b28b] Detect test results more accurately when genera...
 insert_kernel_faults.sh 2009-08-22 subrata_modak subrata_modak [1b9e21] Introducing the "Kernel Fault Injection Framewo...
 ltp_check 2009-11-19 yaberauneya yaberauneya [81db12] Fix more tail -<integer> syntax issues.
 ltp_master 2002-09-05 robbiew robbiew [cba897] Applied patch from Jay Huie <wjhuie@us.ibm.com>
 ltpoutput 2001-10-31 plars plars [b9d267] new script to rip failures out of the pan output
 ltpoutput2 2001-12-12 robbiew robbiew [bf15e3] Script corrected to read from STDIN, instead of...
 ltprun 2002-10-15 plars plars [d81249] Fix tools/ltprun to use the new runalltests sem...
 ltpupdate 2002-03-27 robbiew robbiew [dc61c5] Updated versions from Jay Huie.
 make-file.sh 2010-03-03 Rishikesh K Rajak Rishikesh K Rajak [d822fc] Merge branch 'next' of ssh://ltp.git.sourceforg...
 rand_lines.c 2011-02-15 Garrett Cooper Garrett Cooper [0a3148] Merge branch 'master' of ssh://ltp.git.sourcefo...
 restore_kernel_faults_default.sh 2009-08-22 subrata_modak subrata_modak [4a6aa6] Introducing the "Kernel Fault Injection Framewo...

Read Me

LTP Automation
~~~~~~~~~~~~~~~

The LTP automation scripts are intended to completely automate the
updating, running, and reporting of an LTP test run. The ltpupdate script
simply produces a copy of the latest CVS code and packages it up as a tgz
file and uploads it to the designated LTP host machine. The ltp_master
script first kicks off the test (this could possibly be controlled by another
script say after a new release for example). This script uploads the
ltprun script (which does the actual test run) to each machine specified.
Currently I use this mostly as a single shot run. I envision a time to come
when I have enough machines to run a copy of LTP against a test farm of say
the same distro on different machine configurations, or on every machine I
have control over for example. The ltprun scripts does what one would
usually do on a system to be tested, download the code, compile, execute,
but it also handles the reporting process as well. It will upload the data
to the LTP host to be collected later. The ltp_check script does the brunt
of the results processing. It produces a results.out file which has a
summary of the system under test, the success (or failure) of the test and
if there are failures the output from each testcase. 

Here's the scenario (pardon the ASCII art);

----------  ------            -----------
|master|    |test|            |ltp_host|
----------  ------            -----------
  |             |                     |
  +-------------+---------------------+


I've divided it up into 3 machine types viz, "master", "test" and
"ltp_host". For purposes of this documents lts consider we have one test
machine.

ltp_master script
~~~~~~~~~~~~~~~~~
The ltp_master script is the driver that runs LTP testsuite on a machine
of choice, it takes a single argument ie the name of the victim machine

ltp_master can be invoked in the following 3 ways:

#1 ltp_master -f system_file
 - system_file is an ASCII file containing the list of victim machines.

#2 ltp_master system.name.dom.com 
 - space separated names of victim machines.

#3 ltp_master
 - will prompt user for the names of the victim machines.

I reccomend using scheme #2, this will help seperate different
distros, platforms etc, for example, We might say have a file with RedHat 
machines, or all SuSE, or all machines of a certain platform (say zSeries).

Regardless of how it's invoked ltp_master does the following on each
victim machine.

  -  FTP connect to the test system and uploads ltprun
  -  Telnet to each system and kick off ltprun ( runs under nohup )

ltprun script
~~~~~~~~~~~~~
ltprun is where bulk of the automation of ltp is done. 
It does the following.
  - downloads the ltp test suite tarfile (ltp.tgz) from ltp_host.
  - uncompress the test suite and compile it.
  - runs the test suite.
  - tars up the results.
  - uploads results back to ltp_host.

In case any of the get, build, run fails, the script will still upload
the results back to the ltp_host machine, so you don't have to try to remember
which runs were kicked off and correlate that with which runs were reported.

ltp_check
~~~~~~~~~
ltp_check lives on the master machine, this script has to be run as root
user and it saves the ltp test results in /root/ltp_results.

ltp_check does the following;
  - FTPs to ltp_host and downloads all of the *-ltpoutput.tgz files
  - Creates a results directory for each machine (using the short
    hostname) and for each run (based on timestamping)
  - Uncompresses the gathered result files into the new directory
  - parses results gathered,  saves it as results.out file in the same 
    directory. The results are sorted by system name and then run time.

Note: 
  - Check through the scripts for appropriate variables that you may need to
change in order to customize further, they should be at the beginning of the 
file.

  - This "fire and forget" might not work 100%. But if you find a test
(like pth_str02) that hangs you can log in as root and do something like;
killall pth_str02 a few times and the test should pick up where it left
off.

Please send comments or suggestions to:

Jay Huie
wjhuie@us.ibm.com
Linux System Test
Phone: 845-435-8164

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks