Edit

kc3-lang/SDL/visualtest/include/SDL_visualtest_harness_argparser.h

Branch :

  • Show log

    Commit

  • Author : Sam Lantinga
    Date : 2017-08-28 00:22:23
    Hash : 0d011ec6
    Message : Renaming of guard header names to quiet -Wreserved-id-macro

  • visualtest/include/SDL_visualtest_harness_argparser.h
  • /**
     *  \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: */