hypre/docs/dev_autotest.tex

70 lines
2.7 KiB
TeX

%==========================================================================
\chapter{Autotest Procedures}
\label{Autotest Procedures}
%==========================================================================
\section{What is autotest?}
\label{What is autotest?}
Autotest is a set of driver programs and scripts set up as a cron job to
test daily code changes.
%==========================================================================
\section{How is autotest structured?}
\label{How is autotest structured?}
The \file{linear_solvers/test/} subdirectory (in the repository) contains
\begin{enumerate}
\item various driver programs (\file{.c} files)
\item bourne shell scripts to run the driver programs
\item \file{test_drivers.sh} script calls all other scripts and writes their
results and errors to appropriate \file{.log} files.
\item the \file{autotest} script (note: this copy is not used by the cron job).
\end{enumerate}
The \file{/home/casc/software/hypre/autotest} directory contains
\begin{enumerate}
\item the \file{autotest} script which is used by the cron job.
\item the \file{linear_solvers} directory which \file{autotest} checks
out of the repository
\item the \file{autotest} script checks out the repository, configures,
makes the library, calls the \file{test_drivers.sh} script in the newly
checked out directory structure, and sets permissions.
This file should seldom change.
\end{enumerate}
%==========================================================================
\section{Features of autotest}
\label{Features of autotest}
\begin{enumerate}
\item works with the autoconfig infrastructure.
\item test suites can be added/removed easily.
\item identify failure/success of a test (future feature)
\item email code developers of test failure
\item test on all target platforms (future feature)
\end{enumerate}
%==========================================================================
\section{How to modify autotest}
\label{How to modify autotest}
\begin{enumerate}
\item create and test a driver program, e.g. \file{somedriver.c}
\item create and test a Bourne shell script to run the driver,
\file{somedriver.sh}
\item create a file with the email addresses of the appropriate
developers in it, \file{somedriver.email}
\item add \file{somedriver} to the \code{TEST_DRIVERS} variable
in the \file{test_drivers.sh} file
\item modify the Makefile.in file in the test subdirectory as follows:
\begin{itemize}
\item add the necessary information to the \code{LFLAGS} variable
\item add the necessary target information to the \code{Targets} section
\item add the necessary rules to the \code{Rules} section
\end{itemize}
\item commit all added and modified files (there is no need to
modify autotest or the crontab file)
\end{enumerate}