X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs%2F.git;a=blobdiff_plain;f=yaffsdev.c;h=0f40974d531c5505cdc68d2692e91b2d0bbad69e;hp=9675dabfd7b04c46f038de1f0e76b3630be5903a;hb=aa39fbf7616e8b26833a09cb64c6a40859494599;hpb=3f107ebf545c27322a15a458198a3cd5dbc876f3 diff --git a/yaffsdev.c b/yaffsdev.c index 9675dab..0f40974 100644 --- a/yaffsdev.c +++ b/yaffsdev.c @@ -14,6 +14,8 @@ */ #include "yaffsinterface.h" +#include "yportenv.h" + #if YAFFS_FILEEM #include "yaffs_fileem.h" #else @@ -26,18 +28,10 @@ #include #include - - - yaffs_Device device; - - - - - char *testStr = "this is a test string"; char *testStr2 = "abcdefghijklmnopqrstuvwxyz1234567890"; @@ -123,8 +117,10 @@ void TestTimeasasas(yaffs_Device *dev) yaffs_DumpObject(f); - printf("Resize\n"); - yaffs_ResizeFile(f,2000); + printf("Resize to 3000\n"); + yaffs_ResizeFile(f,3000); + printf("Resize to 2048\n"); + yaffs_ResizeFile(f,2048); yaffs_DumpObject(f); @@ -181,7 +177,7 @@ void TestTime(yaffs_Device *dev) x = yaffs_RenameObject(yaffs_Root(dev),"Name1",NULL,"Rename"); for(i = 0; i < 100000; i+=20) - { + { b++; if(b & 1) @@ -190,15 +186,32 @@ void TestTime(yaffs_Device *dev) written = yaffs_WriteDataToFile(f,testStr2,i,strlen(testStr2)); } + yaffs_ReadDataFromFile(f,data,1000,50); + data[50] = 0; + + printf("Read data is \"%s\"\n",data); + yaffs_ApplyToDirectoryChildren(yaffs_Root(dev),yaffs_DumpObject); + yaffs_ReadDataFromFile(f,data,1000,50); + data[50] = 0; + + printf("Read data is \"%s\"\n",data); printf("Flush\n"); yaffs_FlushFile(f); + yaffs_ReadDataFromFile(f,data,1000,50); + data[50] = 0; + + printf("Read data is \"%s\"\n",data); printf("File length is %d\n",yaffs_GetObjectFileLength(f)); sl = yaffs_MknodSymLink(yaffs_Root(dev),"sym-link",0,0,0,"/tmp/alias"); + yaffs_ReadDataFromFile(f,data,1000,50); + data[50] = 0; + + printf("Read data is \"%s\"\n",data); yaffs_ApplyToDirectoryChildren(yaffs_Root(dev),yaffs_DumpObject); @@ -217,7 +230,18 @@ void TestTime(yaffs_Device *dev) yaffs_DumpObject(f); - printf("Resize\n"); + printf("Resize 3000\n"); + yaffs_ResizeFile(f,3000); + + printf("Resize 2050\n"); + yaffs_ResizeFile(f,2050); + printf("Resize 2049\n"); + yaffs_ResizeFile(f,2049); + printf("Resize 2048\n"); + yaffs_ResizeFile(f,2048); + + + printf("Resize 2000\n"); yaffs_ResizeFile(f,2000); yaffs_DumpObject(f); @@ -299,13 +323,118 @@ void TestTime(yaffs_Device *dev) yaffs_Link(yaffs_Root(dev),"phl4",f); } +void TestTimeDeleteFocussed(yaffs_Device *dev) +{ + yaffs_Object *f; + yaffs_Object *lnf; + + + int x; + int i; + 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"); + + + + + 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"); + + 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); + + + printf("Unlink file: %d\n",yaffs_Unlink(yaffs_Root(dev),"Rename")); + + yaffs_ApplyToDirectoryChildren(yaffs_Root(dev),yaffs_DumpObject); + +} + +void TestTimeTnodeFocussed(yaffs_Device *dev) +{ + yaffs_Object *f; + yaffs_Object *lnf; + + + int x; + int i; + 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"); + + + + + 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"); + + for(i = 0; i < 10000; i+=20) + { + + b++; + if(b & 1) + written = yaffs_WriteDataToFile(f,testStr,0,strlen(testStr)); + else + written = yaffs_WriteDataToFile(f,testStr2,0,strlen(testStr2)); + } + +} + int main(int argc,char *argv[]) { - device.nBlocks = (2 * 1024 * 1024) / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK); - device.startBlock = 1; // Don't use block 0 - device.endBlock = device.nBlocks - 1; #if YAFFS_FILEEM + device.nBlocks = (64 * 1024 * 1024) / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK); device.writeChunkToNAND = yaffs_FEWriteChunkToNAND; device.readChunkFromNAND = yaffs_FEReadChunkFromNAND; device.eraseBlockInNAND = yaffs_FEEraseBlockInNAND; @@ -313,6 +442,7 @@ int main(int argc,char *argv[]) printf("Testing on file emulation\n"); #else + device.nBlocks = (2 * 1024 * 1024) / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK); device.writeChunkToNAND = nandemul_WriteChunkToNAND; device.readChunkFromNAND = nandemul_ReadChunkFromNAND; device.eraseBlockInNAND = nandemul_EraseBlockInNAND; @@ -321,6 +451,9 @@ int main(int argc,char *argv[]) printf("Testing on RAM emulation\n"); #endif + device.startBlock = 1; // Don't use block 0 + device.endBlock = device.nBlocks - 1; + yaffs_GutsInitialise(&device); // yaffs_GutsTest();