void checkpoint_upgrade_test(const char *mountpt,int nmounts) { char a[50]; char b[50]; char c[50]; char d[50]; int i; int j; int h; sprintf(a,"%s/a",mountpt); printf("Create start condition\n"); yaffs_StartUp(); SetCheckpointReservedBlocks(0); yaffs_mount(mountpt); yaffs_mkdir(a,0); sprintf(b,"%s/zz",a); sprintf(c,"%s/xx",a); make_file2(b,c,2000000); sprintf(d,"%s/aa",a); make_file2(d,NULL,500000000); dump_directory_tree(mountpt); printf("Umount/mount attempt full\n"); yaffs_unmount(mountpt); SetCheckpointReservedBlocks(10); yaffs_mount(mountpt); printf("unlink small file\n"); yaffs_unlink(c); dump_directory_tree(mountpt); printf("Umount/mount attempt\n"); yaffs_unmount(mountpt); yaffs_mount(mountpt); for(j = 0; j < 500; j++){ printf("***** touch %d\n",j); dump_directory_tree(mountpt); yaffs_touch(b); yaffs_unmount(mountpt); yaffs_mount(mountpt); } for(j = 0; j < 500; j++){ printf("***** touch %d\n",j); dump_directory_tree(mountpt); yaffs_touch(b); yaffs_unmount(mountpt); yaffs_mount(mountpt); } }
void checkpoint_fill_test(const char *mountpt,int nmounts) { char a[50]; char b[50]; char c[50]; int i; int j; int h; sprintf(a,"%s/a",mountpt); yaffs_StartUp(); for(i = 0; i < nmounts; i++){ printf("############### Iteration %d Start\n",i); yaffs_mount(mountpt); dump_directory_tree(mountpt); yaffs_mkdir(a,0); sprintf(b,"%s/zz",a); h = yaffs_open(b,O_CREAT | O_RDWR,S_IREAD |S_IWRITE); while(yaffs_write(h,c,50) == 50){} yaffs_close(h); for(j = 0; j < 2; j++){ printf("touch %d\n",j); yaffs_touch(b); yaffs_unmount(mountpt); yaffs_mount(mountpt); } dump_directory_tree(mountpt); yaffs_unmount(mountpt); } }