1 /** 2 * \file SDL_visualtest_harness_argparser.h 3 * 4 * Provides functionality to parse command line arguments to the test harness. 5 */ 6 7 #include <SDL.h> 8 #include "SDL_visualtest_sut_configparser.h" 9 #include "SDL_visualtest_variator_common.h" 10 #include "SDL_visualtest_action_configparser.h" 11 12 #ifndef _SDL_visualtest_harness_argparser_h 13 #define _SDL_visualtest_harness_argparser_h 14 15 /** Maximum length of a path string */ 16 #define MAX_PATH_LEN 300 17 /** Maximum length of a string of SUT arguments */ 18 #define MAX_SUT_ARGS_LEN 600 19 20 /* Set up for C function definitions, even when using C++ */ 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 /** 26 * Stores the state of the test harness. 27 */ 28 typedef struct SDLVisualTest_HarnessState 29 { 30 /*! Path to the System Under Test (SUT) executable */ 31 char sutapp[MAX_PATH_LEN]; 32 /*! Command line arguments to be passed to the SUT */ 33 char sutargs[MAX_SUT_ARGS_LEN]; 34 /*! Time in milliseconds after which to kill the SUT */ 35 int timeout; 36 /*! Configuration object for the SUT */ 37 SDLVisualTest_SUTConfig sut_config; 38 /*! What type of variator to use to generate argument strings */ 39 SDLVisualTest_VariatorType variator_type; 40 /*! The number of variations to generate */ 41 int num_variations; 42 /*! If true, the test harness will just print the different variations 43 without launching the SUT for each one */ 44 SDL_bool no_launch; 45 /*! A queue with actions to be performed while the SUT is running */ 46 SDLVisualTest_ActionQueue action_queue; 47 /*! Output directory to save the screenshots */ 48 char output_dir[MAX_PATH_LEN]; 49 /*! Path to directory with the verification images */ 50 char verify_dir[MAX_PATH_LEN]; 51 } SDLVisualTest_HarnessState; 52 53 /** 54 * Parse command line paramters to the test harness and populate a state object. 55 * 56 * \param argv The array of command line parameters. 57 * \param state Pointer to the state object to be populated. 58 * 59 * \return Non-zero on success, zero on failure. 60 */ 61 int SDLVisualTest_ParseHarnessArgs(char** argv, SDLVisualTest_HarnessState* state); 62 63 /** 64 * Frees any resources associated with the state object pointed to by \c state. 65 */ 66 void SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState* state); 67 68 /* Ends C function definitions when using C++ */ 69 #ifdef __cplusplus 70 } 71 #endif 72 73 #endif /* _SDL_visualtest_harness_argparser_h */ 74