Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / rx / test / generator.h
1 /*
2 * Copyright 2000, International Business Machines Corporation and others.
3 * All Rights Reserved.
4 *
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
8 */
9
10 #define PRIVATE static
11 #define IN
12 #define INOUT
13 #define MACRO_BEGIN do {
14 #define MACRO_END } while (0)
15
16
17 typedef enum { FALSE, TRUE } boolean_t;
18
19 /* no. tests per file */
20 #define TESTS_PER_FILE 50
21
22 /* no: of elems in dir array */
23 #define DIR_SIZE 3
24
25 /* no: of elems in typ array */
26 #define TYP_SIZE 11
27
28 /* max strlength among the lems fo the dir array */
29 #define MAX_DIR_STR 7
30
31 /* max string length among th lems of the typ array */
32 #define MAX_TYP_STR 16
33
34 /* arrays size to be generated in the idl and itl files */
35 #define IDL_STR_MAX 1000
36 #define IDL_FIX_ARRAY_SIZE 15
37
38 /* length of vary/conf attrib , eg" length */
39 #define ATTRIB_LEN 7
40 #define ATTRIB_NO 3
41
42 typedef struct {
43 char direction[MAX_DIR_STR];
44 char type[MAX_TYP_STR];
45 int attrib_ct;
46 char attrib[ATTRIB_NO][ATTRIB_LEN];
47 boolean_t first;
48 boolean_t last;
49 boolean_t length;
50 boolean_t max;
51 boolean_t size;
52 unsigned int instringlen;
53 char *inValue[IDL_FIX_ARRAY_SIZE]; /* value passed via RPC */
54 char *inValue2[IDL_FIX_ARRAY_SIZE];
55 char *outValue[IDL_FIX_ARRAY_SIZE]; /* value returned via RPC */
56 char *outValue2[IDL_FIX_ARRAY_SIZE];
57 int vc_low, vc_high, vc_max; /* array bounds ([in] value) */
58 int ovc_low, ovc_high; /* array bounds ([out] value) */
59 } arg_tuple;
60
61 typedef struct {
62 int argCount;
63 arg_tuple *argDescr;
64 } rpcArgs;
65
66 #define MEM_CHK(x, y) if(!x) {fprintf(stderr, y); exit(1);}
67
68 #define FATAL( y ) {fprintf(stderr, y); exit(1);}
69
70 /* for vary/conf array for testing pusrposes we will assume a
71 high index of at least 5, so IDL_FIX_ARRAY_SIZE should never be
72 smaller than MIN_HIGH */
73 #define MIN_HIGH 2
74
75 /* max length of server name string -- file names <= 8 Chars, append Mgr,
76 and so limit server name to 5 chars */
77 #define MAX_SERV_NAME 5
78
79 #define PrintShortUsage \
80 MACRO_BEGIN \
81 fprintf( stderr, \
82 "Usage: generator [-h] [-l] [-f] <inputFileName> [-s] <serverName> \
83 -o <output dir> [-p] <platform> \n"); \
84 MACRO_END
85
86 #define PrintLongUsage \
87 MACRO_BEGIN \
88 PrintShortUsage; \
89 fprintf( stderr, \
90 "\nCommand line options(case insensitive):\
91 \n\t-h = help message \
92 \n\t-l = use lwps as the thread model instead of pthreads \
93 \n\t-f = set the input table file \
94 \n\t-s = set the server name (truncates to 5 chars) \
95 \n\t-o = set output directory \
96 \n\t-p = set target platform (NT or UNIX - defaults to NT) \
97 \n"); \
98 MACRO_END
99
100 /* max no: of args 999 */
101 #define MAX_DIGITS_IN_ARGS 3
102
103 #define MAX_RAND_LENGTH 50
104
105 #define MAX_INDEX_DIGITS 10
106
107 /* size of rpc signature buffer */
108 #define SIGN_SIZE 10000
109
110 #define SkipWhiteSpaces(p) \
111 MACRO_BEGIN \
112 while (isspace(*(p))) \
113 (p)++; \
114 MACRO_END
115
116 /* limits for random generation */
117 #define MIN_CHAR 32
118 #define MAX_CHAR 126
119 #define MIN_FLT 0.00000000
120 #define MAX_FLT 1.00000000
121 #define MIN_DBL 0.0000000000000000
122 #define MAX_DBL 1.0000000000000000