X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fdtest.c;h=b2dcc0f27387c1615e84583a0eebb1c0bc6f1b4b;hp=638cf4a515d580f069a8c4608ed87b81c846e0de;hb=f37d0b9ff0c87c1e22a5f708dbb4b455da7af59f;hpb=77179ba56322261acd43fd0543b88dc455df7cda diff --git a/direct/dtest.c b/direct/dtest.c index 638cf4a..b2dcc0f 100644 --- a/direct/dtest.c +++ b/direct/dtest.c @@ -1036,6 +1036,36 @@ int resize_stress_test(const char *path) } + +int overwrite_test(const char *path) +{ + char aname[100]; + char bname[100]; + int i; + int j; + int a; + int b; + yaffs_StartUp(); + + yaffs_mount(path); + + sprintf(aname,"%s%s",path,"/a"); + sprintf(bname,"%s%s",path,"/b"); + + b = yaffs_open(bname, O_CREAT | O_TRUNC | O_RDWR, S_IREAD | S_IWRITE); + for(j= 0; j < 500; j++){ + yaffs_write(b,bname,100); + a = yaffs_open(aname, O_CREAT | O_TRUNC | O_RDWR, S_IREAD | S_IWRITE); + for(i = 0; i < rand() % 20000; i++) + yaffs_write(a,&a,sizeof(a)); + yaffs_close(a); + } + + return 0; + +} + + int root_perm_remount(const char *path) { struct yaffs_stat s; @@ -1631,7 +1661,37 @@ void link_test1(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) @@ -2228,7 +2288,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); @@ -2241,7 +2300,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"); @@ -2452,9 +2510,12 @@ int main(int argc, char *argv[]) //rename_over_test("//////////////////flash///////////////////yaffs1///////////"); //fill_empty_files_test("/yaffs2/"); + //resize_stress_test("/yaffs2"); + overwrite_test("/yaffs2"); + //long_name_test("/yaffs2"); - link_test0("/yaffs2"); - link_test1("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); @@ -2468,7 +2529,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");