\hypertarget{_s_d_l__visualtest__exhaustive__variator_8h}{\section{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.h File Reference}
\label{_s_d_l__visualtest__exhaustive__variator_8h}\index{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{C\-:/\-Users/\-D\-E\-L\-L/\-Work/sdlvisualtest/visualtest/include/\-S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}}
}
{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-harness\-\_\-argparser.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}S\-D\-L\-\_\-visualtest\-\_\-variator\-\_\-common.\-h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \\*
\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h_ab64de6cf7d6a1e6d09d470c020940c25}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h_a9e213e530ddf5a18014786d10e9fdaee}{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator, \hyperlink{struct_s_d_l_visual_test___s_u_t_config}{S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$config)
\item 
char $\ast$ \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h_aa9e13a92945ef48308215b3fa068ed29}{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator)
\item 
void \hyperlink{_s_d_l__visualtest__exhaustive__variator_8h_a7168b055fb86bbbb700d87ae842f7152}{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator} (\hyperlink{struct_s_d_l_visual_test___exhaustive_variator}{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$variator)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Header for the exhaustive variator. 

\subsection{Typedef Documentation}
\hypertarget{_s_d_l__visualtest__exhaustive__variator_8h_ab64de6cf7d6a1e6d09d470c020940c25}{\index{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}}
\index{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}!SDL_visualtest_exhaustive_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}}
\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}  {\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator}}}\label{_s_d_l__visualtest__exhaustive__variator_8h_ab64de6cf7d6a1e6d09d470c020940c25}
Struct for the variator that exhaustively iterates through all variations of command line arguments to the S\-U\-T. 

\subsection{Function Documentation}
\hypertarget{_s_d_l__visualtest__exhaustive__variator_8h_a7168b055fb86bbbb700d87ae842f7152}{\index{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}}
\index{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}!SDL_visualtest_exhaustive_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}}
\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}void S\-D\-L\-Visual\-Test\-\_\-\-Free\-Exhaustive\-Variator (
\begin{DoxyParamCaption}
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator}
\end{DoxyParamCaption}
)}}\label{_s_d_l__visualtest__exhaustive__variator_8h_a7168b055fb86bbbb700d87ae842f7152}
Frees any resources associated with the variator. \hypertarget{_s_d_l__visualtest__exhaustive__variator_8h_aa9e13a92945ef48308215b3fa068ed29}{\index{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}}
\index{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation@{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}!SDL_visualtest_exhaustive_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}}
\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ S\-D\-L\-Visual\-Test\-\_\-\-Get\-Next\-Exhaustive\-Variation (
\begin{DoxyParamCaption}
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator}
\end{DoxyParamCaption}
)}}\label{_s_d_l__visualtest__exhaustive__variator_8h_aa9e13a92945ef48308215b3fa068ed29}
Gets the arguments string for the next variation using the variator and updates the variator's current variation object to the next variation.

\begin{DoxyReturn}{Returns}
The arguments string representing the next variation on success, and N\-U\-L\-L on failure or if we have iterated through all possible variations. In the latter case subsequent calls will start the variations again from the very beginning. The pointer returned should not be freed. 
\end{DoxyReturn}
\hypertarget{_s_d_l__visualtest__exhaustive__variator_8h_a9e213e530ddf5a18014786d10e9fdaee}{\index{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}!S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}}
\index{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator@{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}!SDL_visualtest_exhaustive_variator.h@{S\-D\-L\-\_\-visualtest\-\_\-exhaustive\-\_\-variator.\-h}}
\subsubsection[{S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator}]{\setlength{\rightskip}{0pt plus 5cm}int S\-D\-L\-Visual\-Test\-\_\-\-Init\-Exhaustive\-Variator (
\begin{DoxyParamCaption}
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-Exhaustive\-Variator} $\ast$}]{variator, }
\item[{{\bf S\-D\-L\-Visual\-Test\-\_\-\-S\-U\-T\-Config} $\ast$}]{config}
\end{DoxyParamCaption}
)}}\label{_s_d_l__visualtest__exhaustive__variator_8h_a9e213e530ddf5a18014786d10e9fdaee}
Initializes the variator.

\begin{DoxyReturn}{Returns}
1 on success, 0 on failure 
\end{DoxyReturn}
