diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-12-03 14:00:33 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-12-03 14:00:33 +0000 |
commit | f6cb6163b9a9ad60e358755427d8c443804fcb3c (patch) | |
tree | 8c1688e2c7ab91167542c80f3eb7d7ddf421cb8d /firmware/test | |
parent | c032e65034c23d3c48bc60bb76e120898b26efd3 (diff) | |
download | rockbox-f6cb6163b9a9ad60e358755427d8c443804fcb3c.tar.gz rockbox-f6cb6163b9a9ad60e358755427d8c443804fcb3c.zip |
Fat test code, for the archives.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2911 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/test')
-rw-r--r-- | firmware/test/fat/ata-sim.c | 4 | ||||
-rw-r--r-- | firmware/test/fat/main.c | 70 | ||||
-rw-r--r-- | firmware/test/fat/test.sh | 77 |
3 files changed, 90 insertions, 61 deletions
diff --git a/firmware/test/fat/ata-sim.c b/firmware/test/fat/ata-sim.c index 63abc58084..aac7fba0f4 100644 --- a/firmware/test/fat/ata-sim.c +++ b/firmware/test/fat/ata-sim.c @@ -8,7 +8,7 @@ static FILE* file; -int ata_read_sectors(unsigned long start, unsigned char count, void* buf) +int ata_read_sectors(unsigned long start, int count, void* buf) { if ( count > 1 ) DEBUGF("[Reading %d blocks: 0x%lx to 0x%lx]\n", @@ -28,7 +28,7 @@ int ata_read_sectors(unsigned long start, unsigned char count, void* buf) return 0; } -int ata_write_sectors(unsigned long start, unsigned char count, void* buf) +int ata_write_sectors(unsigned long start, int count, void* buf) { if ( count > 1 ) DEBUGF("[Writing %d blocks: 0x%lx to 0x%lx]\n", diff --git a/firmware/test/fat/main.c b/firmware/test/fat/main.c index 520454541f..9c1b983925 100644 --- a/firmware/test/fat/main.c +++ b/firmware/test/fat/main.c @@ -331,40 +331,47 @@ int dbg_append(char* name) int dbg_test(char* name) { int x=0; - int size, fd, rc; - char buf[4096]; + int j; + int fd; + char text[BUFSIZE+1]; - fd = open(name,O_RDWR); - if (fd<0) { - DEBUGF("Failed opening file\n"); - return -1; - } + for (j=0; j<5; j++) { + int num = 40960; - size = lseek(fd, -1024, SEEK_END); - size &= ~7; - DEBUGF("File is %d bytes\n", size); - x = size / CHUNKSIZE; - LDEBUGF("Check base is %x (%d)\n",x,size); + fd = open(name,O_WRONLY|O_CREAT|O_APPEND); + if (fd<0) { + DEBUGF("Failed opening file\n"); + return -1; + } - rc = read(fd, buf, sizeof buf); - if ( rc < 0 ) - panicf("Failed reading data\n"); - if ( rc == 0 ) - DEBUGF("EOF\n"); + while ( num ) { + int rc, i; + int len = num > BUFSIZE ? BUFSIZE : num; - rc = read(fd, buf, sizeof buf); - if ( rc < 0 ) - panicf("Failed reading data\n"); - if ( rc == 0 ) - DEBUGF("EOF\n"); + for (i=0; i<len/CHUNKSIZE; i++ ) + sprintf(text+i*CHUNKSIZE,"%c%06x,",name[1],x++); - rc = write(fd, buf, sizeof buf); - if ( rc < 0 ) - panicf("Failed writing data\n"); - if ( rc == 0 ) - DEBUGF("Nothing written!\n"); + rc = write(fd, text, len); + if ( rc < 0 ) { + DEBUGF("Failed writing data\n"); + return -1; + } + else + if ( rc == 0 ) { + DEBUGF("No space left\n"); + return -2; + } + else + DEBUGF("wrote %d bytes\n",rc); - return close(fd); + num -= len; + } + + if (close(fd) < 0) + return -1; + } + + return 0; } int dbg_dump(char* name, int offset) @@ -511,6 +518,7 @@ int dbg_cmd(int argc, char *argv[]) " wrtest <file>\n" " append <file>\n" " test <file>\n" + " ren <file> <newname>\n" ); return -1; } @@ -615,6 +623,12 @@ int dbg_cmd(int argc, char *argv[]) return dbg_trunc(arg1, atoi(arg2)); } + if (!strcasecmp(cmd, "ren")) + { + if (arg1 && arg2) + return rename(arg1, arg2); + } + return 0; } diff --git a/firmware/test/fat/test.sh b/firmware/test/fat/test.sh index 7d9435b85d..6a26e7ff59 100644 --- a/firmware/test/fat/test.sh +++ b/firmware/test/fat/test.sh @@ -15,8 +15,9 @@ check() { } try() { - echo COMMAND: fat $1 $2 $3 >> $RESULT - ./fat $1 $2 $3 2>> $RESULT + echo COMMAND: fat $1 "$2" "$3" + echo COMMAND: fat $1 "$2" "$3" >> $RESULT + ./fat $1 "$2" "$3" 2>> $RESULT RETVAL=$? [ $RETVAL -ne 0 ] && fail } @@ -26,6 +27,10 @@ buildimage() { mount -o loop $IMAGE $MOUNT echo "Filling it with /etc files" find /etc -type f -maxdepth 1 -exec cp {} $MOUNT \; + for i in `seq 1 120`; + do + echo apa > "$MOUNT/very $i long test filename so we can make sure they.work" + done mkdir $MOUNT/dir umount $MOUNT } @@ -34,53 +39,63 @@ runtests() { rm $RESULT echo ---Test: create a 10K file - try mkfile /apa.txt 10 - try mkfile /dir/apa.txt 10 + try mkfile "/really long filenames rock" 10 + check + try mkfile /dir/apa.monkey.me.now 10 check - try chkfile /apa.txt 10 - try chkfile /dir/apa.txt 8 + try chkfile "/really long filenames rock" 10 + try chkfile /dir/apa.monkey.me.now 8 echo ---Test: create a 1K file - try mkfile /bpa.txt 1 + try mkfile /bpa.rock 1 check - try chkfile /bpa.txt 1 + try chkfile /bpa.rock 1 echo ---Test: create a 40K file - try mkfile /cpa.txt 40 + try mkfile /cpa.rock 40 check - try chkfile /cpa.txt 40 + try chkfile /cpa.rock 40 echo ---Test: create a 400K file - try mkfile /dpa.txt 400 + try mkfile /dpa.rock 400 + check + try chkfile /dpa.rock 400 + + echo ---Test: create a 1200K file + try mkfile /epa.rock 1200 check - try chkfile /dpa.txt 400 + try chkfile /epa.rock 1200 - echo ---Test: truncate previous 40K file to 20K - try mkfile /cpa.txt 20 + echo ---Test: rewrite first 20K of a 40K file + try mkfile /cpa.rock 20 check - try chkfile /cpa.txt 20 + try chkfile /cpa.rock 20 - echo ---Test: truncate previous 20K file to 0K - try mkfile /cpa.txt 0 + echo ---Test: rewrite first sector of 40K file + try mkfile /cpa.rock 0 check - try chkfile /cpa.txt - try chkfile /apa.txt - try chkfile /bpa.txt + try chkfile /cpa.rock + try chkfile /apa.rock + try chkfile /bpa.rock LOOP=50 - SIZE=70 + SIZE=700 + + try del "/really long filenames rock" echo ---Test: create $LOOP $SIZE k files for i in `seq 1 $LOOP`; do echo ---Test: $i/$LOOP --- - try mkfile /rockbox.$i $SIZE + try mkfile "/rockbox rocks.$i" $SIZE + check + try chkfile "/rockbox rocks.$i" $SIZE check - try chkfile /rockbox.$i $SIZE + try del "/rockbox rocks.$i" check - try del /rockbox.$i + try mkfile "/rockbox rocks.$i" $SIZE check - try mkfile /rockbox.$i $SIZE + try ren "/rockbox rocks.$i" "$i is a new long filename!" check done @@ -90,20 +105,20 @@ echo "Building test image (4 sector/cluster)" buildimage 4 runtests -echo "Building test image (128 sectors/cluster)" -buildimage 128 -runtests - echo "Building test image (32 sectors/cluster)" buildimage 32 runtests +echo "Building test image (1 sector/cluster)" +buildimage 1 +runtests + echo "Building test image (8 sectors/cluster)" buildimage 8 runtests -echo "Building test image (1 sector/cluster)" -buildimage 1 +echo "Building test image (128 sectors/cluster)" +buildimage 128 runtests echo "== Test completed sucessfully ==" |