summaryrefslogtreecommitdiffstats
path: root/firmware/test
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-12-03 14:00:33 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-12-03 14:00:33 +0000
commitf6cb6163b9a9ad60e358755427d8c443804fcb3c (patch)
tree8c1688e2c7ab91167542c80f3eb7d7ddf421cb8d /firmware/test
parentc032e65034c23d3c48bc60bb76e120898b26efd3 (diff)
downloadrockbox-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.c4
-rw-r--r--firmware/test/fat/main.c70
-rw-r--r--firmware/test/fat/test.sh77
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 =="