1 /*------------------------------------------------------------------------- 2 * pg_regress.h --- regression test driver 3 * 4 * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group 5 * Portions Copyright (c) 1994, Regents of the University of California 6 * 7 * src/test/regress/pg_regress.h 8 *------------------------------------------------------------------------- 9 */ 10 11 #include <unistd.h> 12 13 #ifndef WIN32 14 #define PID_TYPE pid_t 15 #define INVALID_PID (-1) 16 #else 17 #define PID_TYPE HANDLE 18 #define INVALID_PID INVALID_HANDLE_VALUE 19 #endif 20 21 /* simple list of strings */ 22 typedef struct _stringlist 23 { 24 char *str; 25 struct _stringlist *next; 26 } _stringlist; 27 28 typedef PID_TYPE(*test_function) (const char *, 29 _stringlist **, 30 _stringlist **, 31 _stringlist **); 32 typedef void (*init_function) (int argc, char **argv); 33 34 extern char *bindir; 35 extern char *libdir; 36 extern char *datadir; 37 extern char *host_platform; 38 39 extern _stringlist *dblist; 40 extern bool debug; 41 extern char *inputdir; 42 extern char *outputdir; 43 extern char *launcher; 44 45 extern const char *basic_diff_opts; 46 extern const char *pretty_diff_opts; 47 48 int regression_main(int argc, char *argv[], 49 init_function ifunc, test_function tfunc); 50 void add_stringlist_item(_stringlist **listhead, const char *str); 51 PID_TYPE spawn_process(const char *cmdline); 52 void replace_string(char *string, char *replace, char *replacement); 53 bool file_exists(const char *file); 54