| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | /* See LICENSE.txt for the full license governing this code. *//** * \file SDL_visualtest_sut_configparser.h * * Header for the parser for SUT config files. */#ifndef SDL_visualtest_sut_configparser_h_#define SDL_visualtest_sut_configparser_h_/** Maximum length of the name of an SUT option */#define MAX_SUTOPTION_NAME_LEN 100/** Maximum length of the name of a category of an SUT option */#define MAX_SUTOPTION_CATEGORY_LEN 40/** Maximum length of one enum value of an SUT option */#define MAX_SUTOPTION_ENUMVAL_LEN 40/** Maximum length of a line in the paramters file */#define MAX_SUTOPTION_LINE_LENGTH 256/* Set up for C function definitions, even when using C++ */#ifdef __cplusplusextern "C" {#endif/** * Describes the different kinds of options to the SUT. */typedef enum {    SDL_SUT_OPTIONTYPE_STRING = 0,    SDL_SUT_OPTIONTYPE_INT,    SDL_SUT_OPTIONTYPE_ENUM,    SDL_SUT_OPTIONTYPE_BOOL} SDLVisualTest_SUTOptionType;/** * Represents the range of values an integer option can take. */typedef struct SDLVisualTest_SUTIntRange {    /*! Minimum value of the integer option */    int min;    /*! Maximum value of the integer option */    int max;} SDLVisualTest_SUTIntRange;/** * Struct that defines an option to be passed to the SUT. */typedef struct SDLVisualTest_SUTOption {    /*! The name of the option. This is what you would pass in the command line        along with two leading hyphens. */    char name[MAX_SUTOPTION_NAME_LEN];    /*! An array of categories that the option belongs to. The last element is        NULL. */    char** categories;    /*! Type of the option - integer, boolean, etc. */    SDLVisualTest_SUTOptionType type;    /*! Whether the option is required or not */    SDL_bool required;    /*! extra data that is required for certain types */    union {        /*! This field is valid only for integer type options; it defines the        valid range for such an option */        SDLVisualTest_SUTIntRange range;        /*! This field is valid only for enum type options; it holds the list of values        that the option can take. The last element is NULL */        char** enum_values;    } data;} SDLVisualTest_SUTOption;/** * Struct to hold all the options to an SUT application. */typedef struct SDLVisualTest_SUTConfig{    /*! Pointer to an array of options */    SDLVisualTest_SUTOption* options;    /*! Number of options in \c options */    int num_options;} SDLVisualTest_SUTConfig;/** * Parses a configuration file that describes the command line options an SUT * application will take and populates a SUT config object. All lines in the * config file must be smaller than  * * \param file Path to the configuration file. * \param config Pointer to an object that represents an SUT configuration. * * \return zero on failure, non-zero on success */int SDLVisualTest_ParseSUTConfig(char* file, SDLVisualTest_SUTConfig* config);/** * Free any resources associated with the config object pointed to by \c config. */void SDLVisualTest_FreeSUTConfig(SDLVisualTest_SUTConfig* config);/* Ends C function definitions when using C++ */#ifdef __cplusplus}#endif#endif /* SDL_visualtest_sut_configparser_h_ *//* vi: set ts=4 sw=4 expandtab: */
 |