mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-11-04 01:34:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
 *  \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: */
 |