+ yaffs_FlushFile(f,1);
+ yaffs_DeleteFile(f);
+
+}
+
+void TestTime(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");
+
+
+ // Test the problem of:
+ // Create file
+ // Delete file
+ // Create file with same name
+ // Delete file <== crash
+
+ 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");
+ }
+ yaffs_Unlink(yaffs_Root(dev),"Name1");
+
+
+ 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");
+ }
+ yaffs_Unlink(yaffs_Root(dev),"Name1");
+
+
+
+ // Other tests
+
+ 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");
+ }
+
+
+ x = yaffs_RenameObject(yaffs_Root(dev),"Name1",NULL,"Rename");
+
+// Write a file with overwrite, then read it back and save outside yaffs
+// This is to test that write caching works.
+
+ for(i = 0; i < 100; i++)
+ {
+ unsigned char x[500];
+
+ memset(x,i,500);
+
+ written = yaffs_WriteDataToFile(f,x,i*500,500);
+ }
+
+ for(i = 0; i < 100; i++)
+ {
+ unsigned char x;
+
+ x = i+5;
+
+ written = yaffs_WriteDataToFile(f,&x,i*500 + 2,1);
+ }
+
+
+ {
+ int h;
+
+ h = open("bork",O_RDWR | O_CREAT | O_TRUNC,0666);
+ for(i = 0; i < 100; i++)
+ {
+ unsigned char x[500];
+
+ yaffs_ReadDataFromFile(f,x,i*500,500);
+ write(h,x,500);
+ }
+ close(h);
+
+
+ }
+
+// Big write to fill disk
+
+ written = 1;
+ for(i = 0; i < 1000000 && written > 0; i++)
+ {
+ unsigned char x[500];
+
+ memset(x,i,500);
+
+ written = yaffs_WriteDataToFile(f,x,i*500,500);
+ }
+ if(written <= 0)
+ {
+ printf("YAFFS full\n");
+ }
+
+ // some short reads
+ for(i = 1000; i < 50000; i+=2)
+ {
+ yaffs_ReadDataFromFile(f,data,i,20);
+ }
+
+