| /** |
| * \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 */ |