Changeset 4010 for zzuf/trunk/test
- Timestamp:
- Nov 23, 2009, 1:26:59 AM (11 years ago)
- Location:
- zzuf/trunk/test
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
zzuf/trunk/test/check-utils
r4007 r4010 21 21 check "$ZZOPTS" "< $file" "zzuf" 22 22 fi 23 for n in 100 \24 200 201 202 203 204 205 206 207 208 \25 300 301 302 303 304 305 306 307 \23 for n in 100 101 102 \ 24 200 201 202 203 204 205 206 207 208 209 210 211 212 \ 25 300 301 302 303 304 305 306 307 308 309 310 311 \ 26 26 400 \ 27 27 500 \ -
zzuf/trunk/test/zzcat.c
r4007 r4010 38 38 #include <string.h> 39 39 40 static int zzcat_read(char const *, unsigned char *, int64_t );40 static int zzcat_read(char const *, unsigned char *, int64_t, int64_t); 41 41 static int zzcat_fread(char const *, unsigned char *, int64_t); 42 static int zzcat_getc(char const *, unsigned char *, int64_t, int);43 42 #if defined HAVE_GETLINE 44 static int zzcat_getdelim_getc(char const *, unsigned char *, int64_t, int); 45 #endif 46 static int zzcat_fseek_getc(char const *, unsigned char *, int64_t, int); 47 static int zzcat_fread_getc(char const *, unsigned char *, int64_t, int); 43 static int zzcat_getline_getc(char const *, unsigned char *, int64_t, int); 44 #endif 45 static int zzcat_fseek_getc(char const *, unsigned char *, 46 int64_t, int64_t, int); 47 static int zzcat_fread_getc(char const *, unsigned char *, int64_t, 48 int64_t, int); 48 49 static int zzcat_random_socket(char const *, unsigned char *, int64_t); 49 50 static int zzcat_random_stream(char const *, unsigned char *, int64_t); … … 103 104 { 104 105 /* Simple socket calls */ 105 case 100: ret = zzcat_read(name, data, len); break; 106 case 100: ret = zzcat_read(name, data, len, 1); break; 107 case 101: ret = zzcat_read(name, data, len, 3); break; 108 case 102: ret = zzcat_read(name, data, len, len); break; 106 109 /* Simple stream calls */ 107 110 case 200: ret = zzcat_fread(name, data, len); break; 108 case 201: ret = zzcat_getc(name, data, len, 0); break; 109 case 202: ret = zzcat_getc(name, data, len, 1); break; 110 case 203: ret = zzcat_fseek_getc(name, data, len, 0); break; 111 case 204: ret = zzcat_fseek_getc(name, data, len, 1); break; 112 case 205: ret = zzcat_fread_getc(name, data, len, 0); break; 113 case 206: ret = zzcat_fread_getc(name, data, len, 1); break; 111 case 201: ret = zzcat_fseek_getc(name, data, len, 0, 0); break; 112 case 202: ret = zzcat_fseek_getc(name, data, len, 0, 1); break; 113 case 203: ret = zzcat_fseek_getc(name, data, len, 2, 0); break; 114 case 204: ret = zzcat_fseek_getc(name, data, len, 2, 1); break; 115 case 205: ret = zzcat_fseek_getc(name, data, len, len / 2, 0); break; 116 case 206: ret = zzcat_fseek_getc(name, data, len, len / 2, 1); break; 117 case 207: ret = zzcat_fread_getc(name, data, len, 2, 0); break; 118 case 208: ret = zzcat_fread_getc(name, data, len, 2, 1); break; 119 case 209: ret = zzcat_fread_getc(name, data, len, len / 2, 0); break; 120 case 210: ret = zzcat_fread_getc(name, data, len, len / 2, 1); break; 114 121 #if defined HAVE_GETLINE 115 case 2 07: ret = zzcat_getdelim_getc(name, data, len, 0); break;116 case 2 08: ret = zzcat_getdelim_getc(name, data, len, 1); break;122 case 211: ret = zzcat_getline_getc(name, data, len, 0); break; 123 case 212: ret = zzcat_getline_getc(name, data, len, 1); break; 117 124 #endif 118 125 /* Simple unlocked stream calls */ 119 126 #if defined HAVE_GETC_UNLOCKED 120 case 300: ret = zzcat_getc(name, data, len, 2); break; 121 case 301: ret = zzcat_getc(name, data, len, 3); break; 122 case 302: ret = zzcat_fseek_getc(name, data, len, 2); break; 123 case 303: ret = zzcat_fseek_getc(name, data, len, 3); break; 124 case 304: ret = zzcat_fread_getc(name, data, len, 2); break; 125 case 305: ret = zzcat_fread_getc(name, data, len, 3); break; 127 case 300: ret = zzcat_fseek_getc(name, data, len, 0, 2); break; 128 case 301: ret = zzcat_fseek_getc(name, data, len, 0, 3); break; 129 case 302: ret = zzcat_fseek_getc(name, data, len, 2, 2); break; 130 case 303: ret = zzcat_fseek_getc(name, data, len, 2, 3); break; 131 case 304: ret = zzcat_fseek_getc(name, data, len, len / 2, 2); break; 132 case 305: ret = zzcat_fseek_getc(name, data, len, len / 2, 3); break; 133 case 306: ret = zzcat_fread_getc(name, data, len, 2, 2); break; 134 case 307: ret = zzcat_fread_getc(name, data, len, 2, 3); break; 135 case 308: ret = zzcat_fread_getc(name, data, len, len / 2, 2); break; 136 case 309: ret = zzcat_fread_getc(name, data, len, len / 2, 3); break; 126 137 # if defined HAVE_GETLINE 127 case 3 06: ret = zzcat_getdelim_getc(name, data, len, 2); break;128 case 3 07: ret = zzcat_getdelim_getc(name, data, len, 3); break;138 case 310: ret = zzcat_getline_getc(name, data, len, 2); break; 139 case 311: ret = zzcat_getline_getc(name, data, len, 3); break; 129 140 # endif 130 141 #endif … … 147 158 } 148 159 149 /* Only read(1) calls */ 150 static int zzcat_read(char const *name, unsigned char *data, int64_t len) 160 /* Only read() calls */ 161 static int zzcat_read(char const *name, unsigned char *data, int64_t len, 162 int64_t chunk) 151 163 { 152 164 int i, fd = open(name, O_RDONLY); 153 165 if(fd < 0) 154 166 return EXIT_FAILURE; 155 for(i = 0; i < len; i ++)156 read(fd, data + i, 1);167 for(i = 0; i < len; i += chunk) 168 read(fd, data + i, chunk); 157 169 close(fd); 158 170 return EXIT_SUCCESS; … … 172 184 } 173 185 174 /* Only getc() or fgetc() calls */175 static int zzcat_getc(char const *name, unsigned char *data, int64_t len,176 int getc_method)177 {178 FILE *stream = fopen(name, "r");179 int i;180 if(!stream)181 return EXIT_FAILURE;182 for(i = 0; i < len; i++)183 data[i] = mygetc(stream, getc_method);184 fclose(stream);185 return EXIT_SUCCESS;186 }187 188 186 #if defined HAVE_GETLINE 189 187 /* getdelim() and getc() calls */ 190 static int zzcat_get delim_getc(char const *name, unsigned char *data,191 188 static int zzcat_getline_getc(char const *name, unsigned char *data, 189 int64_t len, int getc_method) 192 190 { 193 191 FILE *stream = fopen(name, "r"); … … 216 214 /* One fseek(), then only getc() or fgetc() calls */ 217 215 static int zzcat_fseek_getc(char const *name, unsigned char *data, 218 int64_t len, int getc_method)216 int64_t len, int64_t chunk, int getc_method) 219 217 { 220 218 FILE *stream = fopen(name, "r"); … … 222 220 if(!stream) 223 221 return EXIT_FAILURE; 224 fseek(stream, len / 2, SEEK_CUR); 225 for(i = len / 2; i < len; i++) 222 if (chunk) 223 fseek(stream, chunk, SEEK_CUR); 224 for(i = chunk; i < len; i++) 226 225 data[i] = mygetc(stream, getc_method); 227 226 fclose(stream); … … 231 230 /* One fread(), then only getc() or fgetc() calls */ 232 231 static int zzcat_fread_getc(char const *name, unsigned char *data, 233 int64_t len, int getc_method)232 int64_t len, int64_t chunk, int getc_method) 234 233 { 235 234 FILE *stream = fopen(name, "r"); … … 237 236 if(!stream) 238 237 return EXIT_FAILURE; 239 fread(data, 1, len / 2, stream); 240 for(i = len / 2; i < len; i++) 238 if (chunk) 239 fread(data, 1, chunk, stream); 240 for(i = chunk; i < len; i++) 241 241 data[i] = mygetc(stream, getc_method); 242 242 fclose(stream);
Note: See TracChangeset
for help on using the changeset viewer.