/** * \file SDL_visualtest_harness_argparser.h * * Provides functionality to parse command line arguments to the test harness. */ #include <SDL.h> #include "SDL_visualtest_sut_configparser.h" #include "SDL_visualtest_variator_common.h" #include "SDL_visualtest_action_configparser.h" #ifndef _SDL_visualtest_harness_argparser_h #define _SDL_visualtest_harness_argparser_h /** Maximum length of a path string */ #define MAX_PATH_LEN 300 /** Maximum length of a string of SUT arguments */ #define MAX_SUT_ARGS_LEN 600 /* Set up for C function definitions, even when using C++ */ #ifdef __cplusplus extern "C" { #endif /** * Stores the state of the test harness. */ typedef struct SDLVisualTest_HarnessState { /*! Path to the System Under Test (SUT) executable */ char sutapp[MAX_PATH_LEN]; /*! Command line arguments to be passed to the SUT */ char sutargs[MAX_SUT_ARGS_LEN]; /*! Time in milliseconds after which to kill the SUT */ int timeout; /*! Configuration object for the SUT */ SDLVisualTest_SUTConfig sut_config; /*! What type of variator to use to generate argument strings */ SDLVisualTest_VariatorType variator_type; /*! The number of variations to generate */ int num_variations; /*! If true, the test harness will just print the different variations without launching the SUT for each one */ SDL_bool no_launch; /*! A queue with actions to be performed while the SUT is running */ SDLVisualTest_ActionQueue action_queue; /*! Output directory to save the screenshots */ char output_dir[MAX_PATH_LEN]; /*! Path to directory with the verification images */ char verify_dir[MAX_PATH_LEN]; } SDLVisualTest_HarnessState; /** * Parse command line paramters to the test harness and populate a state object. * * \param argv The array of command line parameters. * \param state Pointer to the state object to be populated. * * \return Non-zero on success, zero on failure. */ int SDLVisualTest_ParseHarnessArgs(char** argv, SDLVisualTest_HarnessState* state); /** * Frees any resources associated with the state object pointed to by \c state. */ void SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState* state); /* Ends C function definitions when using C++ */ #ifdef __cplusplus } #endif #endif /* _SDL_visualtest_harness_argparser_h */