SDL_visualtest_harness_argparser.h (2360B)
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 22extern "C" { 23#endif 24 25/** 26 * Stores the state of the test harness. 27 */ 28typedef 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 */ 61int SDLVisualTest_ParseHarnessArgs(char** argv, SDLVisualTest_HarnessState* state); 62 63/** 64 * Frees any resources associated with the state object pointed to by \c state. 65 */ 66void 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 */