X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fdtest.c;h=24f5ad28a2b5001162a480df1afafd7c5b148f69;hp=f22babd454fe0931ad4f550040454b48f6ce88b0;hb=06f8628f9290bd967b8374c992a11dd06caa8747;hpb=acd9c3e51c4aa2f3b3810cc502026dab23253338 diff --git a/direct/dtest.c b/direct/dtest.c index f22babd..24f5ad2 100644 --- a/direct/dtest.c +++ b/direct/dtest.c @@ -422,7 +422,7 @@ void fill_disk_and_delete(const char *path, int nfiles, int ncycles) } -void fill_files(char *path,int flags, int maxIterations,int siz) +void fill_files(const char *path,int flags, int maxIterations,int siz) { int i; int j; @@ -1488,7 +1488,6 @@ void long_name_test(const char *mountpt) } - void lookup_test(const char *mountpt) { int i; @@ -1551,7 +1550,52 @@ void lookup_test(const char *mountpt) } -void link_test(const char *mountpt) +void link_test0(const char *mountpt) +{ + int i; + char namea[300]; + char nameb[300]; + int result = 0; + + + yaffs_StartUp(); + yaffs_mount(mountpt); + + + sprintf(namea,"%s/a",mountpt); + sprintf(nameb,"%s/b",mountpt); + + printf("mounted\n"); + dumpDir(mountpt); + + yaffs_unlink(namea); + printf("a unlinked\n"); + dumpDir(mountpt); + + yaffs_unlink(nameb); + printf("b unlinked\n"); + dumpDir(mountpt); + + result = yaffs_open(namea,O_CREAT| O_RDWR,0666); + yaffs_close(result); + printf("a created\n"); + dumpDir(mountpt); + + yaffs_link(namea,nameb); + printf("linked\n"); + dumpDir(mountpt); + yaffs_unlink(namea); + printf("a ulinked\n"); + dumpDir(mountpt); + yaffs_unlink(nameb); + printf("b unlinked\n"); + dumpDir(mountpt); + + yaffs_unmount(mountpt); +} + + +void link_test1(const char *mountpt) { int i; int h; @@ -1587,7 +1631,37 @@ void link_test(const char *mountpt) yaffs_mount(mountpt); printf("link test done\n"); +} + +void handle_test(const char *mountpt) +{ + int i; + int h; + int cycle; + char a[100]; + + sprintf(a,"%s/aaa",mountpt); + + yaffs_StartUp(); + yaffs_mount(mountpt); + + for(cycle = 0; cycle < 5; cycle++){ + printf("Start cycle %d\n",cycle); + i = 0; + do { + h = yaffs_open(a, O_CREAT | O_TRUNC | O_RDWR, S_IREAD | S_IWRITE); + printf("%d handle %d\n",i,h); + i++; + } while(h >= 0); + + while(i >= -1) { + yaffs_close(i); + i--; + } + } + + yaffs_unmount(mountpt); } void freespace_test(const char *mountpt) @@ -2184,7 +2258,6 @@ void checkpoint_upgrade_test(const char *mountpt,int nmounts) printf("Create start condition\n"); yaffs_StartUp(); - SetCheckpointReservedBlocks(0); yaffs_mount(mountpt); yaffs_mkdir(a,0); sprintf(b,"%s/zz",a); @@ -2197,7 +2270,6 @@ void checkpoint_upgrade_test(const char *mountpt,int nmounts) printf("Umount/mount attempt full\n"); yaffs_unmount(mountpt); - SetCheckpointReservedBlocks(10); yaffs_mount(mountpt); printf("unlink small file\n"); @@ -2407,9 +2479,10 @@ int main(int argc, char *argv[]) //rename_over_test("//////////////////flash///////////////////yaffs1///////////"); - //fill_empty_files_test("/yaffs2/"); - long_name_test("/yaffs2"); - + fill_empty_files_test("/yaffs2/"); + //long_name_test("/yaffs2"); + //link_test0("/yaffs2"); + //link_test1("yaffs2"); //scan_pattern_test("/flash",10000,10); //short_scan_test("/flash/flash",40000,200); //small_mount_test("/flash/flash",1000); @@ -2423,7 +2496,7 @@ int main(int argc, char *argv[]) // huge_array_test("/flash/flash",10); - + handle_test("yaffs2/"); //long_test_on_path("/ram2k"); // long_test_on_path("/flash");