sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

SDL_visualtest_sut_configparser.h (3279B)


      1 /* See COPYING.txt for the full license governing this code. */
      2 /**
      3  * \file SDL_visualtest_sut_configparser.h
      4  *
      5  * Header for the parser for SUT config files.
      6  */
      7 
      8 #ifndef SDL_visualtest_sut_configparser_h_
      9 #define SDL_visualtest_sut_configparser_h_
     10 
     11 /** Maximum length of the name of an SUT option */
     12 #define MAX_SUTOPTION_NAME_LEN 100
     13 /** Maximum length of the name of a category of an SUT option */
     14 #define MAX_SUTOPTION_CATEGORY_LEN 40
     15 /** Maximum length of one enum value of an SUT option */
     16 #define MAX_SUTOPTION_ENUMVAL_LEN 40
     17 /** Maximum length of a line in the paramters file */
     18 #define MAX_SUTOPTION_LINE_LENGTH 256
     19 
     20 /* Set up for C function definitions, even when using C++ */
     21 #ifdef __cplusplus
     22 extern "C" {
     23 #endif
     24 
     25 /**
     26  * Describes the different kinds of options to the SUT.
     27  */
     28 typedef enum {
     29     SDL_SUT_OPTIONTYPE_STRING = 0,
     30     SDL_SUT_OPTIONTYPE_INT,
     31     SDL_SUT_OPTIONTYPE_ENUM,
     32     SDL_SUT_OPTIONTYPE_BOOL
     33 } SDLVisualTest_SUTOptionType;
     34 
     35 /**
     36  * Represents the range of values an integer option can take.
     37  */
     38 typedef struct SDLVisualTest_SUTIntRange {
     39     /*! Minimum value of the integer option */
     40     int min;
     41     /*! Maximum value of the integer option */
     42     int max;
     43 } SDLVisualTest_SUTIntRange;
     44 
     45 /**
     46  * Struct that defines an option to be passed to the SUT.
     47  */
     48 typedef struct SDLVisualTest_SUTOption {
     49     /*! The name of the option. This is what you would pass in the command line
     50         along with two leading hyphens. */
     51     char name[MAX_SUTOPTION_NAME_LEN];
     52     /*! An array of categories that the option belongs to. The last element is
     53         NULL. */
     54     char** categories;
     55     /*! Type of the option - integer, boolean, etc. */
     56     SDLVisualTest_SUTOptionType type;
     57     /*! Whether the option is required or not */
     58     SDL_bool required;
     59     /*! extra data that is required for certain types */
     60     union {
     61         /*! This field is valid only for integer type options; it defines the
     62         valid range for such an option */
     63         SDLVisualTest_SUTIntRange range;
     64         /*! This field is valid only for enum type options; it holds the list of values
     65         that the option can take. The last element is NULL */
     66         char** enum_values;
     67     } data;
     68 } SDLVisualTest_SUTOption;
     69 
     70 /**
     71  * Struct to hold all the options to an SUT application.
     72  */
     73 typedef struct SDLVisualTest_SUTConfig
     74 {
     75     /*! Pointer to an array of options */
     76     SDLVisualTest_SUTOption* options;
     77     /*! Number of options in \c options */
     78     int num_options;
     79 } SDLVisualTest_SUTConfig;
     80 
     81 /**
     82  * Parses a configuration file that describes the command line options an SUT
     83  * application will take and populates a SUT config object. All lines in the
     84  * config file must be smaller than 
     85  *
     86  * \param file Path to the configuration file.
     87  * \param config Pointer to an object that represents an SUT configuration.
     88  *
     89  * \return zero on failure, non-zero on success
     90  */
     91 int SDLVisualTest_ParseSUTConfig(char* file, SDLVisualTest_SUTConfig* config);
     92 
     93 /**
     94  * Free any resources associated with the config object pointed to by \c config.
     95  */
     96 void SDLVisualTest_FreeSUTConfig(SDLVisualTest_SUTConfig* config);
     97 
     98 /* Ends C function definitions when using C++ */
     99 #ifdef __cplusplus
    100 }
    101 #endif
    102 
    103 #endif /* SDL_visualtest_sut_configparser_h_ */
    104 
    105 /* vi: set ts=4 sw=4 expandtab: */