cscg22-gearboy

CSCG 2022 Challenge 'Gearboy'
git clone https://git.sinitax.com/sinitax/cscg22-gearboy
Log | Files | Refs | sfeed.txt

SDL_visualtest_harness_argparser.h (2360B)


      1/**
      2 *  \file SDL_visualtest_harness_argparser.h
      3 *
      4 *  Provides functionality to parse command line arguments to the test harness.
      5 */
      6
      7#include <SDL.h>
      8#include "SDL_visualtest_sut_configparser.h"
      9#include "SDL_visualtest_variator_common.h"
     10#include "SDL_visualtest_action_configparser.h"
     11
     12#ifndef _SDL_visualtest_harness_argparser_h
     13#define _SDL_visualtest_harness_argparser_h
     14
     15/** Maximum length of a path string */
     16#define MAX_PATH_LEN 300
     17/** Maximum length of a string of SUT arguments */
     18#define MAX_SUT_ARGS_LEN 600
     19
     20/* Set up for C function definitions, even when using C++ */
     21#ifdef __cplusplus
     22extern "C" {
     23#endif
     24
     25/**
     26 * Stores the state of the test harness.
     27 */
     28typedef struct SDLVisualTest_HarnessState
     29{
     30    /*! Path to the System Under Test (SUT) executable */
     31    char sutapp[MAX_PATH_LEN];
     32    /*! Command line arguments to be passed to the SUT */
     33    char sutargs[MAX_SUT_ARGS_LEN];
     34    /*! Time in milliseconds after which to kill the SUT */
     35    int timeout;
     36    /*! Configuration object for the SUT */
     37    SDLVisualTest_SUTConfig sut_config;
     38    /*! What type of variator to use to generate argument strings */
     39    SDLVisualTest_VariatorType variator_type;
     40    /*! The number of variations to generate */
     41    int num_variations;
     42    /*! If true, the test harness will just print the different variations
     43        without launching the SUT for each one */
     44    SDL_bool no_launch;
     45    /*! A queue with actions to be performed while the SUT is running */
     46    SDLVisualTest_ActionQueue action_queue;
     47    /*! Output directory to save the screenshots */
     48    char output_dir[MAX_PATH_LEN];
     49    /*! Path to directory with the verification images */
     50    char verify_dir[MAX_PATH_LEN];
     51} SDLVisualTest_HarnessState;
     52
     53/**
     54 * Parse command line paramters to the test harness and populate a state object.
     55 *
     56 * \param argv  The array of command line parameters.
     57 * \param state Pointer to the state object to be populated.
     58 *
     59 * \return Non-zero on success, zero on failure.
     60 */
     61int SDLVisualTest_ParseHarnessArgs(char** argv, SDLVisualTest_HarnessState* state);
     62
     63/**
     64 * Frees any resources associated with the state object pointed to by \c state.
     65 */
     66void SDLVisualTest_FreeHarnessState(SDLVisualTest_HarnessState* state);
     67
     68/* Ends C function definitions when using C++ */
     69#ifdef __cplusplus
     70}
     71#endif
     72
     73#endif /* _SDL_visualtest_harness_argparser_h */