1 /*
   2  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   3  * Use is subject to license terms.
   4  */
   5 
   6 #ifndef _COMMON_TEST_H_
   7 #define _COMMON_TEST_H_
   8 
   9 #include <stdio.h>
  10 #include <string.h>
  11 #include <strings.h>
  12 #include <sys/types.h>
  13 #include <sys/stat.h>
  14 #include <fcntl.h>
  15 #include <unistd.h>
  16 #include <ctype.h>
  17 #include <stdlib.h>
  18 #include <sys/param.h>
  19 #include <errno.h>
  20 #include <stdarg.h>
  21 
  22 #include <tet_api.h>
  23 
  24 #ifdef __cplusplus
  25 extern "C" {
  26 #endif
  27 
  28 #define SUCCESS                         0
  29 #define UNEXPECTED_FAIL                 -1
  30 #define EXPECTED_FAIL                   -2
  31 
  32 #define DEF_RSH                         "rsh"
  33 #define DEF_RCP                         "rcp"
  34 #define DEF_PING                        "hatimerun -t 60 /usr/sbin/ping"
  35 
  36 #define E_GOSU                          0x01
  37 #define E_NOTREPORT                     0x02
  38 #define E_BACKGROUND                    0x04
  39 #define E_HATIMERUN                     0x08
  40 #define E_HIPRIORITY                    0x10
  41 #define E_REPORT                        0x20
  42 #define E_BGREPORT                      0x40
  43 #define E_FILE                          0x80
  44 #define E_CFGENV                        0x800
  45 #define E_REBOOTPANIC                   0x400
  46 #define E_TRACE                         0x200
  47 
  48 #define MAXCMDLEN                       1024
  49 #define FILE_NAME_LEN                   256
  50 #define MSG_LEN                         2048
  51 #define LINES_MAX                       4096
  52 #define TOTAL_MAX                       30000
  53 
  54 #define MAX_REPORT_BUF_SIZE             8192
  55 
  56 #define REMOTE_CFG_FILE_PREFIX          "/var/tmp/CFG"
  57 #define EXECUTE_FILE_NAME_PREFIX        "/tmp/EXECUTE"
  58 #define WAIT_RCP                        30
  59 
  60 extern char   *CTI_RSH;
  61 extern char   *CTI_RCP;
  62 extern char   *CTI_PING;
  63 
  64 extern int    sysid;
  65 extern int    sysno;
  66 
  67 extern int    master;
  68 extern int    first_system;
  69 extern int    second_system;
  70 extern int    third_system;
  71 extern int    fourth_system;
  72 
  73 extern int    master_sysno;
  74 extern int    master_sysid;
  75 extern char   *master_sysname;
  76 
  77 extern int    num_of_sys;
  78 extern int    num_of_rem_sys;
  79 extern int    num_of_slaves;
  80 
  81 extern int    *rem_sysids;
  82 extern int    *all_sysids;
  83 extern char   **all_sysnames;
  84 extern char   *active_systems_mask;
  85 
  86 extern int    Debug;
  87 extern int    CmdTrace;
  88 extern int    execute_command_line_no;
  89 
  90 extern int    assert_no;
  91 extern int    assert_req_node;
  92 extern int    print_test_debug_flag;
  93 extern int    check_print_size_flag;
  94 
  95 extern int    cti_commonstartup(void);
  96 extern int    cti_commoncleanup(void);
  97 
  98 extern int    cti_checktestprintsize(int max_size, char *format, va_list ap);
  99 extern char   *cti_strtestprint(char *head, char *format, va_list ap);
 100 
 101 /* PRINTFLIKES */
 102 extern void   cti_print(char *head, char *format, va_list ap);
 103 extern void   cti_report(char *format, ...);
 104 extern void   cti_warning(char *format, ...);
 105 extern void   cti_debug(char *format, ...);
 106 extern void   cti_assert(int no, char *text);
 107 extern void   cti_requirement(int no, char *text);
 108 extern void   cti_result(int result, char *format, ...);
 109 extern void   cti_deleteall(char *format, ...);
 110 extern void   cti_delete(int ic, char *format, ...);
 111 extern void   cti_cancelall(int result, char *format, ...);
 112 extern int   cti_cancel(int test_num, int result, char *format, ...);
 113 
 114 extern int    cti_sync(int error);
 115 extern int    cti_syncnoresult(int error);
 116 extern int    cti_synctimeout(int timeout, int error);
 117 
 118 extern int    cti_checkresult(int value);
 119 extern int    cti_checkuniqueint(long long value);
 120 extern int    cti_checkuniqueuint(unsigned long long value);
 121 extern int    cti_checkunique(char *data, int size);
 122 extern int    cti_synccheckdata(char *ptr, int len,
 123     int (*CheckFunc)(char **, int));
 124 extern int    cti_sendrcvdata(char *data_ptr, int data_len, int snd_sysno);
 125 
 126 extern void   cti_reportsetup(void);
 127 
 128 extern int    cti_getsysid_sysno(int rem_sysno);
 129 extern int    cti_getsysid_sysname(char *rem_sysname);
 130 extern int    cti_getsysno_sysid(int rem_sysid);
 131 extern int    cti_getsysno_sysname(char *rem_sysname);
 132 extern char   *cti_getsysname_sysno(int rem_sysno);
 133 extern char   *cti_getsysname_sysid(int rem_sysid);
 134 
 135 extern int    cti_getexecuteoutname(char *outname, int no);
 136 extern int    cti_getexecuteretname(char *outname, int no);
 137 
 138 extern int    cti_execute(int flg, char *cmd);
 139 extern int    cti_bgexecute(int flg, char *cmd, int *cmd_no);
 140 extern int    cti_hiexecute(int flg, char *cmd);
 141 extern int    cti_haexecute(int flg, int timeout, char *cmd);
 142 extern int    cti_hihaexecute(int flg, int timeout, char *cmd);
 143 extern int    cti_getstatusbg(int flg, int cmd_no);
 144 
 145 extern int    cti_remoteexecute(int flg, char *node, char *cmd);
 146 extern int    cti_bgremoteexecute(int flg, char *node, char *cmd,
 147     int *cmd_no);
 148 extern int    cti_hiremoteexecute(int flg, char *node, char *cmd);
 149 extern int    cti_haremoteexecute(int flg, char *node, int timeout,
 150     char *cmd);
 151 extern int    cti_hiharemoteexecute(int flg, char *node, int timeout,
 152     char *cmd);
 153 extern int    cti_getstatusbgremote(int flg, char *node_name,
 154     int cmd_no);
 155 extern int    cti_getremoteenvfile(char *node_name, char *file_name);
 156 extern int    cti_getremoteenvfilemaster(char *node_name, char *file_name);
 157 extern int    cti_remotecopyenv(char *node);
 158 extern int    cti_putremoteenvstr(char *node, char *name, char *val);
 159 extern int    cti_putremoteenvint(char *node, char *name, int val);
 160 extern int    cti_remotecleanupenv(char *node);
 161 extern int    cti_remotecheckenv(char *node);
 162 
 163 extern int    cti_outputjournal(char *outname, int report);
 164 extern int    cti_outputjournalno(int cmd_no);
 165 extern int    System(char *cmd);
 166 
 167 extern void   cti_sigset(void);
 168 
 169 extern int    cti_activehost(int rem_sysno, int active);
 170 extern int    cti_getactivehost(int rem_sysno, int *active);
 171 
 172 extern void   cti_sleep(int sleep_time);
 173 
 174 extern int    cti_ismaster(int rem_sysno);
 175 
 176 #ifdef __cplusplus
 177 }
 178 #endif
 179 
 180 #endif /* _COMMON_TEST_H_ */