\label{doc_decisions_script_testing_md_md_doc_decisions_script_testing}%
\Hypertarget{doc_decisions_script_testing_md_md_doc_decisions_script_testing}%
 \hypertarget{doc_decisions_script_testing_md_autotoc_md1988}{}\doxysection{Problem}\label{doc_decisions_script_testing_md_autotoc_md1988}
Writing portable shell code for testing command-\/line tools is difficult.\hypertarget{doc_decisions_script_testing_md_autotoc_md1989}{}\doxysection{Constraints}\label{doc_decisions_script_testing_md_autotoc_md1989}

\begin{DoxyItemize}
\item Should be able to record input/output/exit codes of command-\/line tools
\item Should be aware of configuration settings (KDB), for example, restore it on changes
\end{DoxyItemize}\hypertarget{doc_decisions_script_testing_md_autotoc_md1990}{}\doxysection{Assumptions}\label{doc_decisions_script_testing_md_autotoc_md1990}
None.\hypertarget{doc_decisions_script_testing_md_autotoc_md1991}{}\doxysection{Considered Alternatives}\label{doc_decisions_script_testing_md_autotoc_md1991}

\begin{DoxyItemize}
\item pythonpaste
\begin{DoxyItemize}
\item Pros\+:
\begin{DoxyItemize}
\item easy to work with
\end{DoxyItemize}
\item Cons\+:
\begin{DoxyItemize}
\item can only trace a single directory (would not work with /etc + $\sim$)
\item extra dependency not in any distro
\end{DoxyItemize}
\end{DoxyItemize}
\item robotframework
\begin{DoxyItemize}
\item Cons\+:
\begin{DoxyItemize}
\item additional (fat) dependency
\item integration with cmake?
\item does not allow one to capture stdout, stderr + return code
\end{DoxyItemize}
\end{DoxyItemize}
\item expect
\begin{DoxyItemize}
\item Pros\+:
\begin{DoxyItemize}
\item interactive testing (e.\+g. for kdb mount)
\end{DoxyItemize}
\item Cons\+:
\begin{DoxyItemize}
\item quite long for simple things (e.\+g. check /bin/true needs 4 lines)
\item new syntax for Elektra (TCL)
\item additional dependency
\end{DoxyItemize}
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{doc_decisions_script_testing_md_autotoc_md1992}{}\doxysection{Decision}\label{doc_decisions_script_testing_md_autotoc_md1992}
Develop shell recorder and tutorial wrapper.\hypertarget{doc_decisions_script_testing_md_autotoc_md1993}{}\doxysection{Rationale}\label{doc_decisions_script_testing_md_autotoc_md1993}
\hypertarget{doc_decisions_script_testing_md_autotoc_md1994}{}\doxysection{Implications}\label{doc_decisions_script_testing_md_autotoc_md1994}
\hypertarget{doc_decisions_script_testing_md_autotoc_md1995}{}\doxysection{Related Decisions}\label{doc_decisions_script_testing_md_autotoc_md1995}
\hypertarget{doc_decisions_script_testing_md_autotoc_md1996}{}\doxysection{Notes}\label{doc_decisions_script_testing_md_autotoc_md1996}

\begin{DoxyItemize}
\item 12.\+11.\+2017\+: pythonpaste not maintained anymore, site is offline 
\end{DoxyItemize}