X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=yaffsdev.c;fp=yaffsdev.c;h=3fb6a62e39ee13af9795f1a2b961e71dde0c84b8;hb=f40b8435a109889e57bc37743ac7eb6badf1dd95;hp=afb9354bc17537a5d51263e1f1d8cb1ccf4aebad;hpb=a1d28cf77fe06fe98cea4c4e80cc1cab94ea6736;p=yaffs%2F.git diff --git a/yaffsdev.c b/yaffsdev.c index afb9354..3fb6a62 100644 --- a/yaffsdev.c +++ b/yaffsdev.c @@ -129,6 +129,110 @@ void TestTimeasasas(yaffs_Device *dev) +} + +void TestTimeBigDeletes(yaffs_Device *dev) +{ + yaffs_Object *f; + yaffs_Object *sl; + yaffs_Object *lnf; + + yaffs_Object *hl1; + yaffs_Object *hl2; + yaffs_Object *hl3; + yaffs_Object *d, *df; + + int x; + int i; + int b; + char data[200]; + + char * alias; + int written; + + + printf("Exisiting objects\n"); + yaffs_ApplyToDirectoryChildren(yaffs_Root(dev),yaffs_DumpObject); + printf("Exisiting objects in lost+found\n"); + lnf = yaffs_FindObjectByName(yaffs_Root(dev),YAFFS_LOSTNFOUND_NAME); + yaffs_ApplyToDirectoryChildren(lnf,yaffs_DumpObject); + + printf("Start\n"); + + + + f = yaffs_FindObjectByName(yaffs_Root(dev),"Name1"); + if(f) + { + printf("Found\n"); + } + else + { + f = yaffs_MknodFile(yaffs_Root(dev),"Name1",0,0,0); + printf("Created\n"); + } + + for(i = 0; i < 100000; i+=20) + { + + b++; + if(b & 1) + written = yaffs_WriteDataToFile(f,testStr,i,strlen(testStr)); + else + written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2)); + } + + yaffs_FlushFile(f); + yaffs_DeleteFile(f); + + f = yaffs_FindObjectByName(yaffs_Root(dev),"Name1"); + if(f) + { + printf("Found\n"); + } + else + { + f = yaffs_MknodFile(yaffs_Root(dev),"Name1",0,0,0); + printf("Created\n"); + } + + for(i = 0; i < 100000; i+=20) + { + + b++; + if(b & 1) + written = yaffs_WriteDataToFile(f,testStr,i,strlen(testStr)); + else + written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2)); + } + + yaffs_FlushFile(f); + yaffs_DeleteFile(f); + + f = yaffs_FindObjectByName(yaffs_Root(dev),"Name1"); + if(f) + { + printf("Found\n"); + } + else + { + f = yaffs_MknodFile(yaffs_Root(dev),"Name1",0,0,0); + printf("Created\n"); + } + + for(i = 0; i < 100000; i+=20) + { + + b++; + if(b & 1) + written = yaffs_WriteDataToFile(f,testStr,i,strlen(testStr)); + else + written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2)); + } + + yaffs_FlushFile(f); + yaffs_DeleteFile(f); + } void TestTime(yaffs_Device *dev) @@ -294,6 +398,8 @@ void TestTime(yaffs_Device *dev) printf("Unlink file: %d\n",yaffs_Unlink(yaffs_Root(dev),"Rename")); + yaffs_DeleteFile(f); + yaffs_ApplyToDirectoryChildren(yaffs_Root(dev),yaffs_DumpObject); // Create a directory and play with it @@ -510,7 +616,7 @@ int main(int argc,char *argv[]) // yaffs_GutsTest(); - TestTime(&device); + TestTimeBigDeletes(&device); printf("Cache hits %d\n",device.cacheHits); printf("Retired blocks %d\n",device.nRetiredBlocks);