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 small_overwrite_test(const char *mountpt,int nmounts) { char a[30]; int i; int j; int h0; int h1; sprintf(a,"%s/a",mountpt); yaffs_StartUp(); for(i = 0; i < nmounts; i++){ static char xx[8000]; printf("############### Iteration %d Start\n",i); if(1) yaffs_mount(mountpt); dump_directory_tree(mountpt); yaffs_mkdir(a,0); sprintf(xx,"%s/0",a); h0 = yaffs_open(xx, O_RDWR | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE); sprintf(xx,"%s/1",a); h1 = yaffs_open(xx, O_RDWR | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE); for(j = 0; j < 1000000; j+=1000){ yaffs_ftruncate(h0,j); yaffs_lseek(h0,j,SEEK_SET); yaffs_write(h0,xx,7000); yaffs_write(h1,xx,7000); if(early_exit) exit(0); } yaffs_close(h0); printf("########### %d\n",i); dump_directory_tree(mountpt); if(1) yaffs_unmount(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); } }
void NorStressTestRun(const char *prefix) { MakeFullNames(prefix); yaffs_StartUp(); yaffs_mount(fullPathName); dump_directory_tree(fullPathName); UpdateCounter(fullPowerUpName,&powerUps,0); dump_directory_tree(fullPathName); while(1){ UpdateCounter(fullStartName, &cycleStarts,0); dump_directory_tree(fullPathName); DoVerifyMainFile(); DoUpdateMainFile(); dump_directory_tree(fullPathName); UpdateCounter(fullEndName,&cycleEnds,0); dump_directory_tree(fullPathName); } }
void multi_mount_test(const char *mountpt,int nmounts) { char a[30]; char b[30]; char c[30]; int i; int j; 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); for(j = 0; j < i; j++){ sprintf(b,"%s/%d",a,j); verify_200k_file(b); } sprintf(b,"%s/%d",a,i); write_200k_file(b,"",""); printf("######## Iteration %d End\n",i); dump_directory_tree(mountpt); yaffs_unmount(mountpt); } }
void small_mount_test(const char *mountpt,int nmounts) { char a[30]; int i; int j; int h0; int h1; int len0; int len1; int nread; sprintf(a,"%s/a",mountpt); yaffs_StartUp(); for(i = 0; i < nmounts; i++){ static char xx[1000]; printf("############### Iteration %d Start\n",i); if(1 || i == 0 || i == 5) yaffs_mount(mountpt); dump_directory_tree(mountpt); yaffs_mkdir(a,0); sprintf(xx,"%s/0",a); if(i ==0){ h0 = yaffs_open(xx, O_RDWR | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE); for(j = 0; j < 130; j++) yaffs_write(h0,xx,1000); yaffs_close(h0); } h0 = yaffs_open(xx,O_RDONLY,0); sprintf(xx,"%s/1",a); h1 = yaffs_open(xx, O_RDWR | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE); while((nread = yaffs_read(h0,xx,1000)) > 0) yaffs_write(h1,xx,nread); len0 = yaffs_lseek(h0,0,SEEK_END); len1 = yaffs_lseek(h1,0,SEEK_END); yaffs_lseek(h0,0,SEEK_SET); yaffs_lseek(h1,0,SEEK_SET); for(j = 0; j < 200; j++){ yaffs_read(h0,xx,1000); yaffs_read(h1,xx,1000); } yaffs_close(h0); yaffs_close(h1); printf("########### %d\n",i); dump_directory_tree(mountpt); if(1 || i == 4 || i == nmounts -1) yaffs_unmount(mountpt); } }