X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs%2F.git;a=blobdiff_plain;f=yaffsdev.c;h=f325b78c1099972b23056c2b2c13429499b268d0;hp=c44715b32f9d062b2bf69578ef37a0c8666d0a10;hb=a03d8e2c95ff61dd751f629bd7b2f2533fa955e8;hpb=63946dbd993069536891909b1e6140dfcabe0d2b diff --git a/yaffsdev.c b/yaffsdev.c index c44715b..f325b78 100644 --- a/yaffsdev.c +++ b/yaffsdev.c @@ -111,7 +111,7 @@ void TestTimeasasas(yaffs_Device *dev) printf("Flush\n"); - yaffs_FlushFile(f); + yaffs_FlushFile(f,1); yaffs_ApplyToDirectoryChildren(yaffs_Root(dev),yaffs_DumpObject); @@ -129,7 +129,7 @@ void TestTimeasasas(yaffs_Device *dev) yaffs_DumpObject(f); - yaffs_FlushFile(f); + yaffs_FlushFile(f,1); @@ -187,7 +187,7 @@ void TestTimeBigDeletes(yaffs_Device *dev) written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2)); } - yaffs_FlushFile(f); + yaffs_FlushFile(f,1); yaffs_DeleteFile(f); f = yaffs_FindObjectByName(yaffs_Root(dev),"Name1"); @@ -211,7 +211,7 @@ void TestTimeBigDeletes(yaffs_Device *dev) written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2)); } - yaffs_FlushFile(f); + yaffs_FlushFile(f,1); yaffs_DeleteFile(f); f = yaffs_FindObjectByName(yaffs_Root(dev),"Name1"); @@ -235,7 +235,7 @@ void TestTimeBigDeletes(yaffs_Device *dev) written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2)); } - yaffs_FlushFile(f); + yaffs_FlushFile(f,1); yaffs_DeleteFile(f); } @@ -392,7 +392,7 @@ void TestTime(yaffs_Device *dev) printf("Flush\n"); - yaffs_FlushFile(f); + yaffs_FlushFile(f,1); yaffs_ReadDataFromFile(f,data,1000,50); data[50] = 0; @@ -443,7 +443,7 @@ void TestTime(yaffs_Device *dev) - yaffs_FlushFile(f); + yaffs_FlushFile(f,1); printf("Unlink file: %d\n",yaffs_Unlink(yaffs_Root(dev),"Rename")); @@ -573,7 +573,7 @@ void TestTimeDeleteFocussed(yaffs_Device *dev) - yaffs_FlushFile(f); + yaffs_FlushFile(f,1); printf("Unlink file: %d\n",yaffs_Unlink(yaffs_Root(dev),"Rename")); @@ -629,6 +629,56 @@ void TestTimeTnodeFocussed(yaffs_Device *dev) written = yaffs_WriteDataToFile(f,testStr2,0,strlen(testStr2)); } +} +void TestTimeBackgroundDeleteFocussed(yaffs_Device *dev) +{ + yaffs_Object *f; + yaffs_Object *lnf; + + + int x; + int i,j; + int b; + 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"); + + + for(j = 0; j < 20; j++) + { + printf("Run %d\n",j); + + 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"); + } + + printf("@@@@@@@ Run %d, object %d\n",j,f->objectId); + + for(i = 0; i < 1000000; i+=20) + { + + written = yaffs_WriteDataToFile(f,testStr,i,100); + } + + yaffs_FlushFile(f,1); + + yaffs_DeleteFile(f); + } + } int main(int argc,char *argv[]) @@ -637,7 +687,7 @@ int main(int argc,char *argv[]) int nBlocks; #if YAFFS_FILEEM - nBlocks =(4 * 1024 * 1024) / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK) ; + nBlocks =(2 * 1024 * 1024) / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK) ; device.writeChunkToNAND = yaffs_FEWriteChunkToNAND; device.readChunkFromNAND = yaffs_FEReadChunkFromNAND; device.eraseBlockInNAND = yaffs_FEEraseBlockInNAND; @@ -662,14 +712,20 @@ int main(int argc,char *argv[]) device.endBlock = nBlocks; #endif + device.nShortOpCaches = 10; + + yaffs_GutsInitialise(&device); // yaffs_GutsTest(); - TestTime(&device); + TestTimeBackgroundDeleteFocussed(&device); printf("Cache hits %d\n",device.cacheHits); printf("Retired blocks %d\n",device.nRetiredBlocks); + printf("Deletions %d\n",device.nDeletions); + printf("Unmarked deletions %d\n",device.nUnmarkedDeletions); + exit(0); }