Megatest

megatest.lyx at [65e8ba3d33]
Login

File docs/megatest.lyx artifact 4ed5338fae part of check-in 65e8ba3d33


#LyX 2.0 created this file. For more info see http://www.lyx.org/
\lyxformat 413
\begin_document
\begin_header
\textclass article
\begin_preamble
% Include the proper LaTeX packages:
%----------------------------------------------------------------------------------------------------
\usepackage{graphicx}
\usepackage{titling}
\usepackage{ifthen}
\usepackage[absolute]{textpos}
\usepackage[colorlinks=true,
                       pagecolor=black,
                       menucolor=black,
                       linkcolor=black,
                       citecolor=blue,
                       pagebordercolor=1 1 1,
                       urlcolor=red,
                       plainpages=false,
                       pdfpagelabels=true,
                       bookmarksnumbered=true]{hyperref}
\usepackage{lastpage}

\newcommand{\reportTopic}{<reportTopic>}
\newcommand{\revisionNumber}{<rev. no.>}
\newcommand{\documentNumber}{<doc. no.>}


% Setup the right-hand header to display the current doc section:
%----------------------------------------------------------------------------------------------------
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}

% Setup for roman numeral page numbers until TOC:
%----------------------------------------------------------------------------------------------------
\newboolean{romanpn}

\pagenumbering{roman}
\setboolean{romanpn}{true}
\let\myTOC\tableofcontents

\renewcommand\tableofcontents{%
\myTOC
\clearpage
\pagenumbering{arabic}
\setboolean{romanpn}{false}
}

% Modify titlepage format:
%----------------------------------------------------------------------------------------------------
\setlength{\TPHorizModule}{1in}
\setlength{\TPVertModule}{\TPHorizModule}
\textblockorigin{3.25in}{1in}

\pretitle
 {
    \begin{flushright}\LARGE\sffamily 
    \thispagestyle{empty}
    \begin{textblock}{4}(0,0)
    \includegraphics[width=2in,keepaspectratio=true]
{/home/matt/data/megatest/docs/megatest_logo.png}
    \end{textblock}
    \vspace{1in}
  }

\posttitle{\par\end{flushright}}

\preauthor{\begin{flushright} \large \sffamily \lineskip 0.5em 
\begin{tabular}[t]{c}}
\postauthor{\end{tabular} \par\end{flushright}}

\predate{\begin{flushright}\large \sffamily Document Number: \documentNumber \\ Revision Number: \revisionNumber \\}

\postdate{
\vspace{2in}
\\Matt Welland.
\par\end{flushright}}

% Setup "fancy" page layout:
%----------------------------------------------------------------------------------------------------
\fancyhf{}
\setlength{\topmargin}{-1in}
\setlength{\headheight}{1in}
\setlength{\headsep}{0.5in}
\setlength{\oddsidemargin}{0.25in}
\setlength{\evensidemargin}{\oddsidemargin}
\setlength{\textwidth}{6in}
\setlength{\headwidth}{\textwidth}
\setlength{\textheight}{8.375in}
\setlength{\footskip}{0.5in}

% Setup header:
%------------------------------------------------------------------------------------------
\fancyhead[L]{\sffamily \bfseries \large Megatest.\\\mdseries \reportTopic}
\fancyhead[R]{\sffamily \bfseries \large User Manual\\ \mdseries \nouppercase{\rightmark}}

% Setup footer:
%------------------------------------------------------------------------------------------
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{\sffamily \bfseries \documentNumber \\ \mdseries Revision:  \revisionNumber}
\fancyfoot[C]{\sffamily \bfseries\thedate \\ \mdseries Free Software. License: GPL v2.0}
\fancyfoot[R]{\ifthenelse{\boolean{romanpn}}{\sffamily  \thepage}{\sffamily \bfseries Page \thepage\ of \pageref{LastPage}}}
\end_preamble
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman times
\font_sans helvet
\font_typewriter courier
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100

\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize 11
\spacing single
\use_hyperref false
\papersize letterpaper
\use_geometry false
\use_amsmath 1
\use_esint 0
\use_mhchem 0
\use_mathdots 1
\cite_engine basic
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\use_refstyle 0
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle fancy
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
renewcommand{
\backslash
documentNumber}{TSETAGEM-011}
\end_layout

\end_inset


\end_layout

\begin_layout Standard
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
renewcommand{
\backslash
reportTopic}{Megatest User Manual}
\end_layout

\end_inset


\end_layout

\begin_layout Standard
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
renewcommand{
\backslash
revisionNumber}{v1.36}
\end_layout

\end_inset


\end_layout

\begin_layout Title
Megatest User Manual
\end_layout

\begin_layout Author
Matthew Welland
\end_layout

\begin_layout Date
Jan.
 29, 2012 
\end_layout

\begin_layout Standard
\begin_inset Newpage newpage
\end_inset


\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
copyright
\end_layout

\end_inset

2011 Matthew Welland.
 All rights reserved.
 
\end_layout

\begin_layout Standard
Megatest is free software released under the General Public License v2.0.
 Please see the file COPYING in the source distribution for details.
 
\end_layout

\begin_layout Standard
\begin_inset VSpace medskip
\end_inset

Email: matt@kiatoa.com.
 
\end_layout

\begin_layout Standard
Web: www.kiatoa.com/fossils/megatest
\end_layout

\begin_layout Standard
\begin_inset VSpace medskip
\end_inset

This document is believed to be acurate at the time of writing but as with
 any opensource project the source code itself is the reference.
 It is the responsibility of the end user to validate that the code will
 perform as they expect.
 The author assumes no responsibility for any inaccuracies that this document
 may contain.
 In no event will Matthew Welland be liable for direct, indirect, special,
 exemplary, incidental, or consequential damages resulting from any defect
 or omission in this document, even if advised of the possibility of such
 damages.
 
\end_layout

\begin_layout Standard
This document is a snapshot in time and Megatest software has likely changed
 since publication.
 This document and Megatest may be improved at any time, without notice
 or obligation.
 
\end_layout

\begin_layout Standard
\begin_inset Newpage newpage
\end_inset


\end_layout

\begin_layout Section*
Megatest/document Revision History
\end_layout

\begin_layout Standard

\shape italic
Notable revisions of the software are occasionally documented here
\shape default
.
\end_layout

\begin_layout Standard
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="2" columns="4">
<features tabularvalignment="middle">
<column alignment="center" valignment="top" width="0.5in">
<column alignment="center" valignment="top" width="0.5in">
<column alignment="block" valignment="top" width="3in">
<column alignment="center" valignment="top" width="1in">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Version
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Author
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Description
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Date
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
v1.25
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
matt
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
converted to new document template
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
thedate
\end_layout

\end_inset


\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard
\begin_inset Newpage newpage
\end_inset


\begin_inset CommandInset toc
LatexCommand tableofcontents

\end_inset


\end_layout

\begin_layout Standard
\begin_inset Newpage newpage
\end_inset


\end_layout

\begin_layout Section
Introduction
\end_layout

\begin_layout Subsection
Megatest design philosophy
\end_layout

\begin_layout Standard
Megatest is intended to provide the minimum needed resources to make writing
 a suite of tests and implementing continuous build for software, design
 engineering or process control (via owlfs for example) without being specialize
d for any specific problem space.
 Megatest in of itself does not know what constitutes a PASS or FAIL of
 a test.
 In most cases megatest is best used in conjunction with logpro or a similar
 tool to parse, analyze and decide on the test outcome.
\end_layout

\begin_layout Subsection
Megatest architecture
\end_layout

\begin_layout Standard
All data to specify the tests and configure the system is stored in plain
 text files.
 All system state is stored in an sqlite3 database.
 Tests are launched using the launching system available for the distributed
 compute platform in use.
 A template script is provided which can launch jobs on local and remote
 Linux hosts.
 Currently megatest uses the network filesystem to 
\begin_inset Quotes eld
\end_inset

call home
\begin_inset Quotes erd
\end_inset

 to your master sqlite3 database.
\end_layout

\begin_layout Section
Installation
\end_layout

\begin_layout Subsection
Dependencies
\end_layout

\begin_layout Standard
Chicken scheme and a number of 
\begin_inset Quotes eld
\end_inset

eggs
\begin_inset Quotes erd
\end_inset

 are required for building megatest.
 See the file utils/installall.sh for an automated way to install the dependencie
s on Linux.
\end_layout

\begin_layout Subsection
Build and Install
\end_layout

\begin_layout Standard
Run “make test” to create the megatest executable.
 You may wish to copy the executable to a centrally accessible location.
\end_layout

\begin_layout Section
Setup
\end_layout

\begin_layout Subsection
Create megatest.config
\end_layout

\begin_layout Standard
Create the file megatest.config using the megatest.config template from the
 tests directory.
 At a minimum you need the following:
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

# Fields are the keys under which your test runs are organized
\end_layout

\begin_layout Plain Layout

[fields]
\end_layout

\begin_layout Plain Layout

field1 TEXT
\end_layout

\begin_layout Plain Layout

field2 TEXT
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

[jobtools]
\end_layout

\begin_layout Plain Layout

# The launcher launches jobs to the local or remote hosts,
\end_layout

\begin_layout Plain Layout

# the job is managed on the target host by megatest,
\end_layout

\begin_layout Plain Layout

# comment out launcher to run local only.
 An example launcher
\end_layout

\begin_layout Plain Layout

# "nbfake" can be found in the utils directory.
 
\end_layout

\begin_layout Plain Layout

launcher nbfake
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

# The disks section specifies where the tests will be run.
 As you
\end_layout

\begin_layout Plain Layout

# run out of space in a partition you can add additional disks
\end_layout

\begin_layout Plain Layout

# entries.
\end_layout

\begin_layout Plain Layout

# Format is:
\end_layout

\begin_layout Plain Layout

# name /path/to/area 
\end_layout

\begin_layout Plain Layout

[disks]
\end_layout

\begin_layout Plain Layout

disk1 /tmp 
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Create runconfigs.config
\end_layout

\begin_layout Standard
This file is used to set environment variables that are run specific.
 You can simply create an empty file to start.
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

# runconfigs.config
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Create the tests directory and your first test
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

mt
\end_layout

\begin_layout Plain Layout

|-- megatest.config
\end_layout

\begin_layout Plain Layout

|-- runconfigs.config
\end_layout

\begin_layout Plain Layout

`-- tests
\end_layout

\begin_layout Plain Layout

    `-- mytest
\end_layout

\begin_layout Plain Layout

        |-- main.sh
\end_layout

\begin_layout Plain Layout

        `-- testconfig
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Create the testconfig file for your test
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

[setup]
\end_layout

\begin_layout Plain Layout

runscript main.sh
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Create your test running script, main.sh
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

#!/bin/bash
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -runstep mystep1 "sleep 20;echo Done" -m "mystep1 is done"
\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -test-status :state COMPLETED :status PASS -m "This is a comment"
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Run megatest and watch your run progress
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

megatest :field1 abc :field2 def :runname 2011week08.4a -runall
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

watch megatest -list-runs %
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

# OR use the dashboard
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

dashboard &
\end_layout

\end_inset


\end_layout

\begin_layout Section
Choose Flow or Unstructured Run?
\end_layout

\begin_layout Standard
A flow is a structured and specifically sequenced set of tests.
 See the Flows chapter to understand the difference.
\end_layout

\begin_layout Section
How to Write Tests
\end_layout

\begin_layout Subsection
A Simple Test with one Step
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

mkdir simpletest
\end_layout

\begin_layout Plain Layout

cd simpletest
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Create your testconfig file
\end_layout

\begin_layout Standard
\begin_inset listings
inline false
status open

\begin_layout Plain Layout

# testconfig
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

[setup]
\end_layout

\begin_layout Plain Layout

runscript main.csh
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Create the main.csh script
\end_layout

\begin_layout Standard
Note: Using csh is NOT recommended.
 Use bash, perl, ruby, zsh or anything other than csh.
 We use csh here because it is popular in the EDA industry for which Megatest
 was originally created.
 
\end_layout

\begin_layout Standard
\noindent
\align left
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

#!/bin/tcsh -x
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

# run the cpu1 simulation.
\end_layout

\begin_layout Plain Layout

#   The step name is "run_simulation"
\end_layout

\begin_layout Plain Layout

#   The commandline being run for this step is "runsim cpu1"
\end_layout

\begin_layout Plain Layout

#   The logpro file to validate the output from the run is "runsim.logpro"
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -runstep run_simulation -logpro runsim.logpro "runsim cpu1"
\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -test-status :state COMPLETED :status $?
\end_layout

\end_inset


\end_layout

\begin_layout Standard
You can now run megatest and the created test directory will contain the
 new files “run_simulation.html” and “run_simulation.log”.
 If you are using the dashboard you can click on the run and then push the
 “View log” button to view the log file in firefox.
\end_layout

\begin_layout Subsection
Simple Test with Multiple Steps 
\end_layout

\begin_layout Standard
To run multiple steps simply add them to the main.csh file.
 Here we add a step to test “cpu2”.
 The second step that tests cpu2 will only run after the step that tested
 “cpu1” completes.
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

#!/bin/tcsh -x
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

# run the cpu1 simulation.
\end_layout

\begin_layout Plain Layout

#   The step name is "run_simulation"
\end_layout

\begin_layout Plain Layout

#   The commandline being run for this step is "runsim cpu1"
\end_layout

\begin_layout Plain Layout

#   The logpro file to validate the output from the run is "runsim.logpro"
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -runstep run_simulation_cpu1 -logpro runsim.logpro "runsim cpu1"
 && 
\backslash

\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -runstep run_simulation_cpu2 -logpro runsim.logpro "runsim cpu2"
\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -test-status :state COMPLETED :status $?
\end_layout

\end_inset


\end_layout

\begin_layout Section
Simple Test with Multiple Steps, Some in Parallel
\end_layout

\begin_layout Subsection
The Makefile
\end_layout

\begin_layout Standard
A good way to run steps in parallel within a single test, especially when
 there are following steps, is to use the Unix Make utility.
 Writing Makefiles is beyond the scope of this document but here is a minimal
 example that will run “runsim cpu1” and “runsim cpu2” in parallel.
 For more information on make try “info make” at the Linux command prompt.
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

# Example Makefile to run two steps in parallel
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

RTLDIR=/path/to/rtl
\end_layout

\begin_layout Plain Layout

CPUS = cpu1 cpu2
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

run_simulation_$(CPUS).html : $(RTLDIR)/$(CPUS)
\end_layout

\begin_layout Plain Layout

	$(MT_MEGATEST) -runstep run_simulation_$(CPUS) -logpro runsim.logpro "runsim
 $(CPUS)
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
The main.csh file
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

#!/bin/tcsh -x
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

# run the cpu1 and cpu2 simulations in parallel.
 
\end_layout

\begin_layout Plain Layout

# The -j parameter tells make how many jobs it may run in parallel
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout
\noindent
\align left

make -j 2 
\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -test-status :state COMPLETED :status $?
\end_layout

\end_inset


\end_layout

\begin_layout Section
Simple Test with Iteration
\end_layout

\begin_layout Standard
Since no jobs run after the cpu1 and cpu2 simulations in this test it is
 possible to use iterated mode.
\end_layout

\begin_layout Subsection
Update your testconfig file for iteration
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

[setup]
\end_layout

\begin_layout Plain Layout

runscript main.csh
\end_layout

\begin_layout Plain Layout
\noindent
\align left

\end_layout

\begin_layout Plain Layout

[items]
\end_layout

\begin_layout Plain Layout

CPU cpu1 cpu2
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Rewrite your main.csh for iteration
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout
\noindent

#!/bin/tcsh -x
\end_layout

\begin_layout Plain Layout
\noindent

\end_layout

\begin_layout Plain Layout
\noindent

# run the cpu simulation but now use the environment variable $CPU
\end_layout

\begin_layout Plain Layout
\noindent

# to select what cpu to run the simulation against
\end_layout

\begin_layout Plain Layout
\noindent

\end_layout

\begin_layout Plain Layout
\noindent

$MT_MEGATEST -runstep run_simulation -logpro runsim.logpro "runsim $CPU"
\end_layout

\begin_layout Plain Layout
\noindent

# As of version 1.07 Megatest automatically converts a status of "0"
\end_layout

\begin_layout Plain Layout
\noindent

# to "PASS", any other number to "FAIL" and directly uses the value of
\end_layout

\begin_layout Plain Layout
\noindent

# a string passed in.
\end_layout

\begin_layout Plain Layout
\noindent

$MT_MEGATEST -test-status :state COMPLETED :status $?
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Tests with Inter-test dependencies
\end_layout

\begin_layout Standard
Sometimes a test depends on the output from a previous test or it may not
 make sense to run a test is another test does not complete with status
 “PASS”.
 In either of these scenarios you can use the “waiton” keyword in your testconfi
g file to indicate that this test must wait on one or more tests to complete
 before being launched.
 In this example there is no point in running the “system” test if the “cpu”
 and “mem” tests either do not complete or complete but with status “FAIL”.
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout
\noindent

# testconfig for the "system" test
\end_layout

\begin_layout Plain Layout
\noindent

[setup]
\end_layout

\begin_layout Plain Layout
\noindent

runscript main.csh
\end_layout

\begin_layout Plain Layout
\noindent

waiton cpu mem
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Rolling up Miscellaneous Data
\end_layout

\begin_layout Standard
Use the -load-test-data switch to roll up arbitrary data from a test into
 the test_data table.
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

# Fields are:
\end_layout

\begin_layout Plain Layout

# category,variable,value,expected,tol,units,comment,status
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

$MT_MEGATEST -load-test-data << EOF
\end_layout

\begin_layout Plain Layout

foo,bar,1.2,1.9,>
\end_layout

\begin_layout Plain Layout

foo,rab,1.0e9,10e9,1e9
\end_layout

\begin_layout Plain Layout

foo,bla,1.2,1.9,<
\end_layout

\begin_layout Plain Layout

foo,bal,1.2,1.2,<,,Check for overload
\end_layout

\begin_layout Plain Layout

foo,alb,1.2,1.2,<=,Amps,This is the high power circuit test
\end_layout

\begin_layout Plain Layout

foo,abl,1.2,1.3,0.1
\end_layout

\begin_layout Plain Layout

foo,bra,1.2,pass,silly stuff
\end_layout

\begin_layout Plain Layout

faz,bar,10,8mA,,,"this is a comment"
\end_layout

\begin_layout Plain Layout

EOF
\end_layout

\end_inset


\end_layout

\begin_layout Standard
New entries are keyed on the category and variable.
 If a new record is inserted with a category and variable that have already
 been used the new record will replace the old record.
\end_layout

\begin_layout Standard
Where value, expected and tol are specified the behavior is as follows.
\end_layout

\begin_layout Itemize
If value, expected and tol are numbers then status is calculated as PASS
 if (expected-tol) <= value <= (expected+tol)
\end_layout

\begin_layout Itemize
If value and expected are numbers and tol is >, <, >= or <= then value is
 compared with expected using the operator given by tol
\end_layout

\begin_layout Itemize
If status is specified its value overrides the above calculations.
\end_layout

\begin_layout Subsection
Rolling up Runs
\end_layout

\begin_layout Standard
To roll up a number of tests in a sequence of runs to a single run use the
 -rollup command.
 
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

megatest -rollup :sysname ubuntu :fsname nfs :datapath none :runname rollup_ww38
\end_layout

\end_inset


\end_layout

\begin_layout Standard
All keys must be specified and the runname is the name of the run that will
 be created.
 All paths are kept original inside the database.
 When -remove-runs is used to delete runs the data is not deleted if there
 are rollups that refer to the data.
 
\end_layout

\begin_layout Section
Dashboard
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

> dashboard &
\end_layout

\end_inset


\end_layout

\begin_layout Standard
\begin_inset Graphics
	filename dashboard.png
	scale 80

\end_inset


\end_layout

\begin_layout Standard
Pushing one of the buttons on the main dashboard will bring up the test
 specific dashboard.
 Values are updated in semi-real time as the test runs.
\end_layout

\begin_layout Standard
\begin_inset Graphics
	filename dashboard-test.png
	scale 80

\end_inset


\end_layout

\begin_layout Section
Generating an OpenDocument Spreadsheet from the Database
\end_layout

\begin_layout Standard
And OpenDocument multi-paned spreadsheet can be generated from the megatest.db
 file by running -extract-ods
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

megatest -extract-ods results.ods :runname % 
\end_layout

\end_inset


\end_layout

\begin_layout Standard
You can optionally specify the keys for your database to limit further the
 runs to extract into the spreadsheet.
 The first sheet contains all the run data and subsequent sheets contain
 data rolled up for the individual tests.
\end_layout

\begin_layout Section
Introspection
\end_layout

\begin_layout Subsection
Getting previous test paths
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

megatest -test-paths -target %/%/% :runname % -testpatt % -itempatt % :status
 PASS 
\end_layout

\end_inset


\end_layout

\begin_layout Section
Flows
\end_layout

\begin_layout Standard
A flow specifies the tests to run, the order and dependencies and is managed
 by a running megatest process.
\end_layout

\begin_layout Section
Flow Specification and Running (Not released yet)
\end_layout

\begin_layout Subsection
Write your flow file
\end_layout

\begin_layout Standard
flows/<flowname>.config
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

# Flow: <flowname>
\end_layout

\begin_layout Plain Layout

[flowconfig]
\end_layout

\begin_layout Plain Layout

# turn on item level dependencies
\end_layout

\begin_layout Plain Layout

itemdeps on
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

[flowsteps]
\end_layout

\begin_layout Plain Layout

# <testname>[,<predecessor>]
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

# Run the test "copydata"
\end_layout

\begin_layout Plain Layout

copydata
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

# Run the test "setup" after copydata completes with PASS, WARN or WAIVE
\end_layout

\begin_layout Plain Layout

setup,copydata
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

# once the test "setup" completes successfully run sim1, sim2 and sim3
\end_layout

\begin_layout Plain Layout

sim1,setup
\end_layout

\begin_layout Plain Layout

sim2,setup
\end_layout

\begin_layout Plain Layout

sim3,setup
\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Run the flow
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

megatest -runflow <flowname> :FIELD1 val1 :FIELD2 val2 :runname wk32.4
\end_layout

\end_inset


\end_layout

\begin_layout Section
Monitor based running
\end_layout

\begin_layout Subsection
Monitor logic
\end_layout

\begin_layout Standard
Note: The monitor is usable but incomplete as of Megatest v1.31.
 Click on the 
\begin_inset Quotes eld
\end_inset

Monitor
\begin_inset Quotes erd
\end_inset

 button on the dashboard to start the monitor and give it a try.
\end_layout

\begin_layout Standard
\begin_inset Graphics
	filename monitor-state-diagram.svg

\end_inset


\end_layout

\begin_layout Section
Reference
\end_layout

\begin_layout Subsection
Configuration file Syntax
\end_layout

\begin_layout Standard
Note: whitespace is preserved including at the end of line.
 Ensure your entries only have whitespace at the end of line when needed
 to avoid problems.
\end_layout

\begin_layout Subsubsection
Sections
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily}"
inline false
status open

\begin_layout Plain Layout

[section name]
\end_layout

\end_inset


\end_layout

\begin_layout Standard
This creates a section named “section name”
\end_layout

\begin_layout Subsubsection
Variables
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily}"
inline false
status open

\begin_layout Plain Layout

VARX has this value
\end_layout

\end_inset


\end_layout

\begin_layout Standard
The variable “VARX” will have the value “has this value”
\end_layout

\begin_layout Subsubsection
Includes
\end_layout

\begin_layout Standard
\begin_inset listings
inline false
status open

\begin_layout Plain Layout

[include filename]
\end_layout

\end_inset


\end_layout

\begin_layout Standard
The file named “filename” will be included as if part of the calling file.
 NOTE: This means no section can be named “include “ (with the whitespace).
\end_layout

\begin_layout Subsubsection
Setting a variable by running a command
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily}"
inline false
status open

\begin_layout Plain Layout

VARNAME [system ls /tmp]
\end_layout

\end_inset


\end_layout

\begin_layout Standard
The variable “VARNAME” will get a value created by the Unix command “ls
 /tmp”.
 All lines of output from the command will be joined with a space.
\end_layout

\begin_layout Subsubsection
Notes
\end_layout

\begin_layout Itemize
Some variables are infered as lists.
 Each token on the line separated by whitespace will be member of the list.
\end_layout

\begin_layout Itemize
Comments (lines starting with #) and blank lines are ignored.
\end_layout

\begin_layout Subsection
Environment variables
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="9" columns="2">
<features tabularvalignment="middle" tabularwidth="80page%">
<column alignment="left" valignment="top" width="10page%">
<column alignment="left" valignment="top" width="50page%">
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Variable
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Purpose
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MT_CMDINFO
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Conveys test variables to the megatest test runner.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MT_TEST_RUN_DIR
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Directory assigned by megatest for the test to run.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MT_TEST_NAME
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Name of the test, corrosponds to the directory name under tests.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MT_ITEM_INFO
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Iterated tests will set this to a sequence of key/values ((KEY val) ...) 
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MT_RUN_AREA_HOME
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Directory where megatest was launched from and where the tests code can
 be found
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MT_RUNNAME
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Name of this run as set by the :runname parameter
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MT_MEGATEST
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Path/Filename to megatest executable.
 Found either from called path or but using the “exectuable” keyword in
 the [setup] section.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
<field1> ....
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The field values as set on the megatest -runall command line (e.g.
 :field1 abc)
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Subsection
megatest.config
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="10" columns="5">
<features tabularvalignment="middle" tabularwidth="80page%">
<column alignment="left" valignment="top" width="10page%">
<column alignment="left" valignment="top" width="15page%">
<column alignment="left" valignment="top" width="20page%">
<column alignment="left" valignment="top" width="6page%">
<column alignment="left" valignment="top" width="20page%">
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
section
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
variable
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
value
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
required
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
comment
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[setup]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
max_concurrent_jobs
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
if variable is not defined no limit on jobs
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
executable
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
full path to megatest binary
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Use only if necessary, megatest will extract the location from where it
 used to launch and add append that to the PATH for test runs.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
runsdir
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
full path to where the link tree to all runs will be created
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Because your runs may be spread out over several disk partitions a central
 link tree is created to make finding all the runs easy.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[fields]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
string of letters, numbers and underscore
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
string of letters, numbers and underscore
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
at least one
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[jobtools]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
launcher
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
command line used to launch jobs - the job command (megatest -execute) will
 be appended to this
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
workhosts
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
list of hostnames to run jobs on NOT SUPPORTED RIGHT NOW
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
n/a
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[jobgroups]
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
string of letters, numbers and underscore
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
number
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Control number of jobs allowed to concurrently run in categories.
 See [jobgroup] in testconfig
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[env-override]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
string of letters, numbers and underscore
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any string
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
These are set on the test launching machine, not the test running machine.
 Typical usage is to control the host or run queue for launching tests.
 These values will not be seen by the test when it runs.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[disks]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
string of letters, numbers and underscore
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
a valid path writable by the test launching process and by the test process
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
yes
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The disk usage balancing algorithm is to choose the disk with the least
 space for each test run.
 
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Subsection
runconfigs.config file
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="3" columns="5">
<features tabularvalignment="middle" tabularwidth="80page%">
<column alignment="left" valignment="top" width="20page%">
<column alignment="left" valignment="top" width="12page%">
<column alignment="left" valignment="top" width="3page%">
<column alignment="left" valignment="top" width="4page%">
<column alignment="left" valignment="top" width="30page%">
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
section
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
variable
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
value
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
required?
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
comment
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[default]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
string of letters, numbers and underscore
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
variables set in this section will be available for all runs, defining the
 same variable in another section will override the value from the default
 section
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[field1value/field2value...]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
string of letters, numbers and underscore
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
the values in this section will be set for any run where field1 is field1value,
 field2 is field2value and fieldN is fieldNvalue.
 
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard
Example: a test suite that checks that a piece of software works correctly
 for different customer configurations and locations each of which is done
 as a separate release regression run.
 The fields, CUSTOMER and LOCATION were chosen.
 The following runconfigs.config file would set some variables specific to
 runs for megacorp in India and femtocorp in the Cook Islands and New Zealand:
\end_layout

\begin_layout Standard
\begin_inset listings
lstparams "basicstyle={\small\ttfamily},language=sh"
inline false
status open

\begin_layout Plain Layout

# runconfigs.config
\end_layout

\begin_layout Plain Layout

[default]
\end_layout

\begin_layout Plain Layout

ENCRYTION true
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

[megacorp/india]
\end_layout

\begin_layout Plain Layout

TESTPATH /nfs/testing/megacorp_runs
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

[femtocorp/cook_islands]
\end_layout

\begin_layout Plain Layout

ENCRYTION false
\end_layout

\begin_layout Plain Layout

TESTPATH /afs/kiatoa/testing/cook_islands
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

[femtocorp/new_zealand]
\end_layout

\begin_layout Plain Layout

TESTPATH /afs/kiatoa/testing/new_zealand
\end_layout

\begin_layout Plain Layout

\end_layout

\begin_layout Plain Layout

[megacorp/new_zealand]
\end_layout

\begin_layout Plain Layout

TESTPATH /nfs/testing/megacorp_runs
\end_layout

\end_inset


\end_layout

\begin_layout Paragraph*
Running megatest like this:
\end_layout

\begin_layout Code
megatest :CUSTOMER megacorp :LOCATION new_zealand :runname week12_2011_run1
 -runall
\end_layout

\begin_layout Paragraph*
Would set:
\end_layout

\begin_layout Code
ENCRYPTION true
\end_layout

\begin_layout Code
TESTPATH /nfs/testing/megacorp_runs
\end_layout

\begin_layout Subsection
Writing tests
\end_layout

\begin_layout Subsubsection
testconfig file
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="6" columns="5">
<features tabularvalignment="middle" tabularwidth="80page%">
<column alignment="left" valignment="top" width="8page%">
<column alignment="left" valignment="top" width="6page%">
<column alignment="left" valignment="top" width="12page%">
<column alignment="left" valignment="top" width="6page%">
<column alignment="left" valignment="top" width="30page%">
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
section
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
variable
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
value
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
required?
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
comments
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[setup]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
runscript
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
name of script to execute for this test
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
yes
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The script must be executable and either provide the full path or put a
 copy at the top of your test directory
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[requirements]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
waiton
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
list of valid test names
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
This test will not run until the named tests are state completed and status
 PASS
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
jobgroup
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[items]
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any valid
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
list of values
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
The test will be repeated once for each item with the variable name set
 to the value.
 If there is more than one variable then the test will be run against all
 unique combinations of the values
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[eztests]
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any valid
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
stepname command
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
no
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Use in addition to or instead of runscript for easy implementation of steps.
 If <stepname>.logpro exists it will be applied to the <stepname>.log and
 resulting exit code will be used to determine PASS/FAIL/WARN
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Subsubsection
Command line
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="22" columns="4">
<features tabularvalignment="middle">
<column alignment="left" valignment="top" width="0">
<column alignment="left" valignment="top" width="0">
<column alignment="left" valignment="top" width="30page%">
<column alignment="left" valignment="top" width="0pt">
<row>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
switch or param
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
parameter
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
purpose
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
comments
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-h
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
brief help
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-runall
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
run all tests
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-runtests
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
test1,test2,...
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
run one or more tests
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-step
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
stepname
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
record a step
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
requires :state and :status
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-test-status
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
record the test status
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
requires :state and :status
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-setlog
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
logfilename
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
set the logfile name for a test
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
path is assumed to be relative to the test run directory
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-set-toplog
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
logfilename
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
set the logfile name for the top test in an iterated test run
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
each sub test can have its own logfile set
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-m
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
\begin_inset Quotes eld
\end_inset

comment
\begin_inset Quotes erd
\end_inset


\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
sets a comment for the step, test or run
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
:runname
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
[a-zA-Z0-9_-]+
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
directory in which this run will be stored in the test run area 
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
:state
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any value
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Set the step or test state, this is stored in the state field in the steps
 or tests table respectively
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
For tests Megatest recognises 
\begin_inset Quotes eld
\end_inset

INCOMPLETE
\begin_inset Quotes erd
\end_inset

, 
\begin_inset Quotes eld
\end_inset

COMPLETE
\begin_inset Quotes erd
\end_inset


\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
:status
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any value
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Set the step or test status, this is stored in the status field in the steps
 or tests table respectively
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
For tests Megatest recognises 
\begin_inset Quotes eld
\end_inset

PASS
\begin_inset Quotes erd
\end_inset

, 
\begin_inset Quotes eld
\end_inset

FAIL
\begin_inset Quotes erd
\end_inset

, and 
\begin_inset Quotes eld
\end_inset

CHECK
\begin_inset Quotes erd
\end_inset


\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-list-runs
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any value, % is wildcard
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Respects -itempatt and -testpatt for filters
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-testpatt
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any value, % is wildcard
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-itempatt
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
any value, % is wildcard
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-showkeys
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Print the keys being used for this database
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-force
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Test will not re-run if in the 
\begin_inset Quotes eld
\end_inset

PASS
\begin_inset Quotes erd
\end_inset

, 
\begin_inset Quotes eld
\end_inset

CHECK
\begin_inset Quotes erd
\end_inset

 or 
\begin_inset Quotes eld
\end_inset

KILLED
\begin_inset Quotes erd
\end_inset

, using -force will force the run to be launched.
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
WARNING: The -force switch will bypass any 
\begin_inset Quotes eld
\end_inset

waiton
\begin_inset Quotes erd
\end_inset

 dependencies.
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-xterm
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Launch an xterm instead of run the test.
 The xterm will have the environment that the test would see.
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-remove-runs
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Remove a run, test or subtest from the database and the disk.
 Cannot be undone.
 Requires -testpatt, -itempatt, :runname and all keys be specified.
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\shape italic
Test helpers
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-runstep
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Used inside a test to run a step, record the start and end of the step and
 optionally analyze the output using logpro.
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-logpro
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
If using logpro to acess the PASS/FAIL status of the step you specify the
 logpro file with this parameter.
\end_layout

\end_inset
</cell>
<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Section
\start_of_appendix
Data
\end_layout

\begin_layout Section
References
\end_layout

\end_body
\end_document