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_ */