1 /* See COPYING.txt for the full license governing this code. */ 2 /** 3 * \file SDL_visualtest_random_variator.h 4 * 5 * Header for the random variator. 6 */ 7 8 #include "SDL_visualtest_harness_argparser.h" 9 #include "SDL_visualtest_variator_common.h" 10 11 #ifndef _SDL_visualtest_random_variator_h 12 #define _SDL_visualtest_random_variator_h 13 14 /* Set up for C function definitions, even when using C++ */ 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 /** 20 * Struct for the variator that randomly generates variations of command line 21 * arguments to the SUT. 22 */ 23 typedef struct SDLVisualTest_RandomVariator 24 { 25 /*! The current variation. */ 26 SDLVisualTest_Variation variation; 27 /*! Configuration object for the SUT that the variator is running for. */ 28 SDLVisualTest_SUTConfig config; 29 /*! Buffer to store the arguments string built from the variation */ 30 char buffer[MAX_SUT_ARGS_LEN]; 31 } SDLVisualTest_RandomVariator; 32 33 /** 34 * Initializes the variator. 35 * 36 * \return 1 on success, 0 on failure 37 */ 38 int SDLVisualTest_InitRandomVariator(SDLVisualTest_RandomVariator* variator, 39 SDLVisualTest_SUTConfig* config, Uint64 seed); 40 41 /** 42 * Generates a new random variation. 43 * 44 * \return The arguments string representing the random variation on success, and 45 * NULL on failure. The pointer returned should not be freed. 46 */ 47 char* SDLVisualTest_GetNextRandomVariation(SDLVisualTest_RandomVariator* variator); 48 49 /** 50 * Frees any resources associated with the variator. 51 */ 52 void SDLVisualTest_FreeRandomVariator(SDLVisualTest_RandomVariator* variator); 53 54 /* Ends C function definitions when using C++ */ 55 #ifdef __cplusplus 56 } 57 #endif 58 59 #endif /* _SDL_visualtest_random_variator_h */