From 4cde66765999976b43d46366e495bf353d35736e Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Mon, 11 Nov 2002 15:47:19 +0000 Subject: Added a truckload of test code. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2829 a1c6a512-1295-4272-9138-f99709370657 --- firmware/test/fat/main.c | 266 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 238 insertions(+), 28 deletions(-) (limited to 'firmware') diff --git a/firmware/test/fat/main.c b/firmware/test/fat/main.c index 58f83f45dc..ca288322d3 100644 --- a/firmware/test/fat/main.c +++ b/firmware/test/fat/main.c @@ -2,6 +2,8 @@ #include #include #include +#include +#include #include "fat.h" #include "debug.h" #include "disk.h" @@ -84,13 +86,15 @@ void dbg_dir(char* currdir) } #define CHUNKSIZE 8 +#define BUFSIZE 8192 int dbg_mkfile(char* name, int num) { - char text[8192]; + char text[BUFSIZE+1]; int i; int fd; int x=0; + bool stop = false; fd = open(name,O_WRONLY); if (fd<0) { @@ -100,7 +104,7 @@ int dbg_mkfile(char* name, int num) num *= 1024; while ( num ) { int rc; - int len = num > sizeof text ? sizeof text : num; + int len = num > BUFSIZE ? BUFSIZE : num; for (i=0; i ", current_directory); + rc = ftruncate(fd, size); + if (rc<0) { + DEBUGF("ftruncate(%d) failed\n", size); + return -2; + } + +#else + fd = open(name,O_RDWR|O_TRUNC); + if (fd<0) + return -1; + + rc = lseek(fd, size, SEEK_SET); + if (fd<0) + return -2; +#endif + + close(fd); + return 0; } int dbg_cmd(int argc, char *argv[]) @@ -306,6 +473,11 @@ int dbg_cmd(int argc, char *argv[]) " mkfile \n" " chkfile \n" " del \n" + " dump \n" + " mkdir \n" + " trunc \n" + " wrtest \n" + " append \n" ); return -1; } @@ -335,7 +507,7 @@ int dbg_cmd(int argc, char *argv[]) if (!strcasecmp(cmd, "head")) { if (arg1) - dbg_head(arg1); + return dbg_head(arg1); } if (!strcasecmp(cmd, "tail")) @@ -367,7 +539,41 @@ int dbg_cmd(int argc, char *argv[]) if (!strcasecmp(cmd, "del")) { if (arg1) - return dbg_del(arg1); + return remove(arg1); + } + + if (!strcasecmp(cmd, "dump")) + { + if (arg1) { + if (arg2) + return dbg_dump(arg1, atoi(arg2)); + else + return dbg_dump(arg1, 0); + } + } + + if (!strcasecmp(cmd, "dump")) + { + if (arg1) + return mkdir(arg1); + } + + if (!strcasecmp(cmd, "wrtest")) + { + if (arg1) + return dbg_wrtest(arg1); + } + + if (!strcasecmp(cmd, "append")) + { + if (arg1) + return dbg_append(arg1); + } + + if (!strcasecmp(cmd, "trunc")) + { + if (arg1 && arg2) + return dbg_trunc(arg1, atoi(arg2)); } return 0; @@ -379,6 +585,10 @@ int main(int argc, char *argv[]) { int rc,i; struct partinfo* pinfo; + struct timeval tv; + + gettimeofday(&tv, NULL); + srand(tv.tv_usec); if(ata_init("disk.img")) { DEBUGF("*** Warning! The disk is uninitialized\n"); -- cgit v1.2.3