X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=direct%2Fbasic-test%2Fdtest.c;h=c56e5b2a76063c5e7cd88062ed90956ad6a54685;hb=29670f031af07612737ffe6f6066859e89b67708;hp=34112c84ecc861dceb5cc28697199b5839b0a0b1;hpb=4a700fe570d217c2c5df87070db7c2652bc0eaaf;p=yaffs2.git diff --git a/direct/basic-test/dtest.c b/direct/basic-test/dtest.c index 34112c8..c56e5b2 100644 --- a/direct/basic-test/dtest.c +++ b/direct/basic-test/dtest.c @@ -19,15 +19,17 @@ #include #include #include +#include #include "yaffsfs.h" +#include "yaffs_guts.h" /* Only for dumping device innards */ -void dumpDir(const char *dname); +extern int yaffs_traceMask; -char xx[600]; +void dumpDir(const char *dname); -void copy_in_a_file(char *yaffsName,char *inName) +void copy_in_a_file(const char *yaffsName,const char *inName) { int inh,outh; unsigned char buffer[100]; @@ -49,7 +51,7 @@ void copy_in_a_file(char *yaffsName,char *inName) close(inh); } -void make_a_file(char *yaffsName,char bval,int sizeOfFile) +void make_a_file(const char *yaffsName,char bval,int sizeOfFile) { int outh; int i; @@ -177,21 +179,22 @@ void create_file_of_size(const char *fn,int syze) int h; int n; int result; - + int iteration = 0; char xx[200]; - - int iterations = (syze + strlen(fn) -1)/ strlen(fn); - + h = yaffs_open(fn, O_CREAT | O_RDWR | O_TRUNC, S_IREAD | S_IWRITE); - while (iterations > 0) + while (syze > 0) { - sprintf(xx,"%s %8d",fn,iterations); + sprintf(xx,"%s %8d",fn,iteration); n = strlen(xx); result = yaffs_write(h,xx,n); - if(result != n) - printf("Wrote %d, should have been %d\n",result,n); - iterations--; + if(result != n){ + printf("Wrote %d, should have been %d. syze is %d\n",result,n,syze); + syze = 0; + } else + syze-=n; + iteration++; } yaffs_close (h); } @@ -292,6 +295,22 @@ void yaffs_backward_scan_test(const char *path) yaffs_mount(path); } +void null_name_test(const char *path) +{ + char fn[100]; + int h; + yaffs_StartUp(); + + yaffs_mount(path); + + sprintf(fn,"%s",path); + + h = yaffs_open(fn,O_CREAT| O_TRUNC| O_RDWR, 0666); + + printf("%d\n",h); + +} + char xxzz[2000]; @@ -381,7 +400,8 @@ void fill_disk(const char *path,int nfiles) int n; int result; int f; - + + static char xx[600]; char str[50]; for(n = 0; n < nfiles; n++) @@ -461,7 +481,7 @@ void fill_files(const char *path,int flags, int maxIterations,int siz) } } -void leave_unlinked_file(char *path,int maxIterations,int siz) +void leave_unlinked_file(const char *path,int maxIterations,int siz) { int i; char str[50]; @@ -1478,7 +1498,7 @@ void long_name_test(const char *mountpt) char name[300]; int result = 0; - int d,f; + int f; // Make a 256 byte name memset(name,0,sizeof(name)); @@ -1582,7 +1602,6 @@ void lookup_test(const char *mountpt) void link_test0(const char *mountpt) { - int i; char namea[300]; char nameb[300]; int result = 0; @@ -2156,7 +2175,7 @@ void small_overwrite_test(const char *mountpt,int nmounts) void seek_overwrite_test(const char *mountpt,int nmounts) { - + static char xx[5000]; char a[30]; int i; @@ -2536,7 +2555,6 @@ void basic_xattr_test(const char *mountpt) int h; int result; int val1; - int valread; yaffs_StartUp(); @@ -2587,7 +2605,6 @@ void big_xattr_test(const char *mountpt) int h; int result; char val[1000]; - char valread[1000]; yaffs_StartUp(); @@ -2623,7 +2640,48 @@ void big_xattr_test(const char *mountpt) list_xattr(name); } + + +void dump_dev_stats(yaffs_Device *dev, const char * str) +{ + printf("%s\n",str); + printf( "space free %d erased %d " + "nand reads %d writes %d erases %d " + "gc all %d passive %d oldestdirty %d blocks %d copies %d \n", + dev->nFreeChunks, dev->nErasedBlocks * dev->param.nChunksPerBlock, + dev->nPageReads, dev->nPageWrites, dev->nBlockErasures, + dev->allGCs, dev->passiveGCs, dev->oldestDirtyGCs, dev->nGCBlocks, dev->nGCCopies); +} + +void test_flash_traffic(const char *mountpt) +{ + char name0[100]; + char name1[100]; + int i; + yaffs_Device *dev; + + yaffs_traceMask = 0; + + yaffs_StartUp(); + + yaffs_mount(mountpt); + dev = yaffs_getdev(mountpt); + + strcpy(name0,mountpt); + strcat(name0,"/x"); + + strcpy(name1,mountpt); + strcat(name1,"/y"); + + dump_dev_stats(dev,"start"); + create_file_of_size(name0,32 * 1024 * 1024); + dump_dev_stats(dev,"32MB written"); + for(i = 0; i < 20; i++) + create_file_of_size(name1,1024 * 1024); + dump_dev_stats(dev,"20x 1MB files written"); + +} int random_seed; int simulate_power_failure; @@ -2677,17 +2735,18 @@ int main(int argc, char *argv[]) //link_test("/flash/flash"); - - - // cache_bypass_bug_test(); //free_space_check(); //check_resize_gc_bug("/flash"); - basic_xattr_test("/yaffs2"); - big_xattr_test("/yaffs2"); + //basic_xattr_test("/yaffs2"); + //big_xattr_test("/yaffs2"); + + //null_name_test("yaffs2"); + + test_flash_traffic("yaffs2"); return 0;