*** empty log message ***
[yaffs/.git] / yaffsdev.c
index c44715b32f9d062b2bf69578ef37a0c8666d0a10..f325b78c1099972b23056c2b2c13429499b268d0 100644 (file)
@@ -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);
 }