summaryrefslogtreecommitdiff
path: root/firmware/test/fat/main.c
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-11-14 15:32:34 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-11-14 15:32:34 +0000
commitdc9cdc40edffad60b17434c2d9769e242edc3397 (patch)
tree146ff1925d8ccdee258a58e4964574030b9a027e /firmware/test/fat/main.c
parent72f2afbe717eee6a589f95fce8867084b3d59bfd (diff)
downloadrockbox-dc9cdc40edffad60b17434c2d9769e242edc3397.tar.gz
rockbox-dc9cdc40edffad60b17434c2d9769e242edc3397.zip
Added close() return code checks, and an eof-write test.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2848 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/test/fat/main.c')
-rw-r--r--firmware/test/fat/main.c71
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
199int dbg_wrtest(char* name) 196int 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
271void dbg_type(char* name) 266void 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; 331int 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
337int dbg_dump(char* name, int offset) 370int 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
421int dbg_trunc(char* name, int size) 454int 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
450int dbg_cmd(int argc, char *argv[]) 482int 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)