diff options
Diffstat (limited to 'firmware/test')
-rw-r--r-- | firmware/test/fat/main.c | 71 |
1 files changed, 55 insertions, 16 deletions
diff --git a/firmware/test/fat/main.c b/firmware/test/fat/main.c index 418f7b3e61..520454541f 100644 --- a/firmware/test/fat/main.c +++ b/firmware/test/fat/main.c | |||
@@ -135,8 +135,7 @@ int dbg_mkfile(char* name, int num) | |||
135 | } | 135 | } |
136 | } | 136 | } |
137 | 137 | ||
138 | close(fd); | 138 | return close(fd); |
139 | return 0; | ||
140 | } | 139 | } |
141 | 140 | ||
142 | 141 | ||
@@ -191,9 +190,7 @@ int dbg_chkfile(char* name, int size) | |||
191 | block++; | 190 | block++; |
192 | } | 191 | } |
193 | 192 | ||
194 | close(fd); | 193 | return close(fd); |
195 | |||
196 | return 0; | ||
197 | } | 194 | } |
198 | 195 | ||
199 | int dbg_wrtest(char* name) | 196 | int dbg_wrtest(char* name) |
@@ -263,9 +260,7 @@ int dbg_wrtest(char* name) | |||
263 | block++; | 260 | block++; |
264 | } | 261 | } |
265 | 262 | ||
266 | close(fd); | 263 | return close(fd); |
267 | |||
268 | return 0; | ||
269 | } | 264 | } |
270 | 265 | ||
271 | void dbg_type(char* name) | 266 | void dbg_type(char* name) |
@@ -316,7 +311,8 @@ int dbg_append(char* name) | |||
316 | x = size / CHUNKSIZE; | 311 | x = size / CHUNKSIZE; |
317 | LDEBUGF("Check base is %x (%d)\n",x,size); | 312 | LDEBUGF("Check base is %x (%d)\n",x,size); |
318 | 313 | ||
319 | close(fd); | 314 | if (close(fd) < 0) |
315 | return -1; | ||
320 | 316 | ||
321 | fd = open(name,O_RDWR|O_APPEND); | 317 | fd = open(name,O_RDWR|O_APPEND); |
322 | if (fd<0) { | 318 | if (fd<0) { |
@@ -329,9 +325,46 @@ int dbg_append(char* name) | |||
329 | if ( rc < 0 ) | 325 | if ( rc < 0 ) |
330 | panicf("Failed writing data\n"); | 326 | panicf("Failed writing data\n"); |
331 | 327 | ||
332 | close(fd); | 328 | return close(fd); |
329 | } | ||
333 | 330 | ||
334 | return 0; | 331 | int dbg_test(char* name) |
332 | { | ||
333 | int x=0; | ||
334 | int size, fd, rc; | ||
335 | char buf[4096]; | ||
336 | |||
337 | fd = open(name,O_RDWR); | ||
338 | if (fd<0) { | ||
339 | DEBUGF("Failed opening file\n"); | ||
340 | return -1; | ||
341 | } | ||
342 | |||
343 | size = lseek(fd, -1024, SEEK_END); | ||
344 | size &= ~7; | ||
345 | DEBUGF("File is %d bytes\n", size); | ||
346 | x = size / CHUNKSIZE; | ||
347 | LDEBUGF("Check base is %x (%d)\n",x,size); | ||
348 | |||
349 | rc = read(fd, buf, sizeof buf); | ||
350 | if ( rc < 0 ) | ||
351 | panicf("Failed reading data\n"); | ||
352 | if ( rc == 0 ) | ||
353 | DEBUGF("EOF\n"); | ||
354 | |||
355 | rc = read(fd, buf, sizeof buf); | ||
356 | if ( rc < 0 ) | ||
357 | panicf("Failed reading data\n"); | ||
358 | if ( rc == 0 ) | ||
359 | DEBUGF("EOF\n"); | ||
360 | |||
361 | rc = write(fd, buf, sizeof buf); | ||
362 | if ( rc < 0 ) | ||
363 | panicf("Failed writing data\n"); | ||
364 | if ( rc == 0 ) | ||
365 | DEBUGF("Nothing written!\n"); | ||
366 | |||
367 | return close(fd); | ||
335 | } | 368 | } |
336 | 369 | ||
337 | int dbg_dump(char* name, int offset) | 370 | int dbg_dump(char* name, int offset) |
@@ -350,7 +383,8 @@ int dbg_dump(char* name, int offset) | |||
350 | if ( rc < 0 ) | 383 | if ( rc < 0 ) |
351 | panicf("Error reading data\n"); | 384 | panicf("Error reading data\n"); |
352 | 385 | ||
353 | close(fd); | 386 | if (close(fd) < 0) |
387 | return -1; | ||
354 | 388 | ||
355 | dbg_dump_buffer(buf, rc, offset); | 389 | dbg_dump_buffer(buf, rc, offset); |
356 | 390 | ||
@@ -414,8 +448,7 @@ int dbg_head(char* name) | |||
414 | DEBUGF("Failed reading file: %d\n",rc); | 448 | DEBUGF("Failed reading file: %d\n",rc); |
415 | } | 449 | } |
416 | 450 | ||
417 | close(fd); | 451 | return close(fd); |
418 | return 0; | ||
419 | } | 452 | } |
420 | 453 | ||
421 | int dbg_trunc(char* name, int size) | 454 | int dbg_trunc(char* name, int size) |
@@ -443,8 +476,7 @@ int dbg_trunc(char* name, int size) | |||
443 | return -2; | 476 | return -2; |
444 | #endif | 477 | #endif |
445 | 478 | ||
446 | close(fd); | 479 | return close(fd); |
447 | return 0; | ||
448 | } | 480 | } |
449 | 481 | ||
450 | int dbg_cmd(int argc, char *argv[]) | 482 | int dbg_cmd(int argc, char *argv[]) |
@@ -478,6 +510,7 @@ int dbg_cmd(int argc, char *argv[]) | |||
478 | " trunc <file> <size>\n" | 510 | " trunc <file> <size>\n" |
479 | " wrtest <file>\n" | 511 | " wrtest <file>\n" |
480 | " append <file>\n" | 512 | " append <file>\n" |
513 | " test <file>\n" | ||
481 | ); | 514 | ); |
482 | return -1; | 515 | return -1; |
483 | } | 516 | } |
@@ -570,6 +603,12 @@ int dbg_cmd(int argc, char *argv[]) | |||
570 | return dbg_append(arg1); | 603 | return dbg_append(arg1); |
571 | } | 604 | } |
572 | 605 | ||
606 | if (!strcasecmp(cmd, "test")) | ||
607 | { | ||
608 | if (arg1) | ||
609 | return dbg_test(arg1); | ||
610 | } | ||
611 | |||
573 | if (!strcasecmp(cmd, "trunc")) | 612 | if (!strcasecmp(cmd, "trunc")) |
574 | { | 613 | { |
575 | if (arg1 && arg2) | 614 | if (arg1 && arg2) |