|  | /** | 
|  | *  \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_ */ | 
|  |  | 
|  | /* vi: set ts=4 sw=4 expandtab: */ |