/*
* YAFFS: Yet another FFS. A NAND-flash specific file system.
*
- * Copyright (C) 2002 Aleph One Ltd.
+ * Copyright (C) 2002-2010 Aleph One Ltd.
* for Toby Churchill Ltd and Brightstar Engineering
*
* Created by Charles Manning <charles@aleph1.co.uk>
int init_test;
int do_upgrade;
int n_cycles = -1;
-int yaffs_test_maxMallocs;
+int fuzz_test=0;
+
+
+int yaffs_test_max_mallocs;
extern int ops_multiplier;
while(n_cycles){
if(cycle % 100 == 0){
printf("CYCLE %8d mo %2d inodes %d space %d ",cycle,op_max,
- yaffs_inodecount(mountpt),yaffs_freespace(mountpt));
+ yaffs_inodecount(mountpt),(int)yaffs_freespace(mountpt));
for(i = 0; i < BASH_HANDLES; i++)
printf("%2d ",h[i]);
printf("\n");
printf(" s sss: set seed\n");
printf(" u: do upgrade test\n");
printf(" b: bash-about test\n");
+ printf(" z: fuzz test - ignore verification errors\n");
exit(2);
}
signal(SIGBUS,bad_ptr_handler);
signal(SIGABRT,bad_ptr_handler);
#endif
- while ((ch = getopt(argc,argv, "bfilmn:ps:t:u"))
+ while ((ch = getopt(argc,argv, "bfilmn:ps:t:uz"))
!= EOF)
switch (ch) {
case 's':
n_cycles = atoi(optarg);
break;
case 't':
- yaffs_traceMask = strtol(optarg,NULL,0);
+ yaffs_trace_mask = strtol(optarg,NULL,0);
+ break;
+ case 'z':fuzz_test=1;
break;
default:
BadUsage();
argv += optind;
if(random_mallocs){
- yaffs_test_maxMallocs = 0xFFF & random_seed;
+ yaffs_test_max_mallocs = 0xFFF & random_seed;
}
if(argc == 1) {
+ int result;
+
strcpy(mount_point,argv[0]);
if(simulate_power_failure)
n_cycles = -1;
- printf("Running test %s %s %s %s seed %d cycles %d\n",
+ printf("Running test %s %s %s %s %s seed %d cycles %d\n",
do_upgrade ? "fw_upgrade" : "",
init_test ? "initialise":"",
+ fuzz_test ? "fuzz-test" : "",
do_fsx ? "fsx" :"",
simulate_power_failure ? "power_fail" : "",
random_seed, n_cycles);
- yaffs_StartUp();
- yaffs_mount(mount_point);
+ yaffs_start_up();
+ result = yaffs_mount(mount_point);
+ if(result < 0){
+ printf("Mount of %s failed\n",mount_point);
+ printf("pid %d sleeping\n",getpid());
+
+ while(!sleep_exit){
+ sleep(1);
+ sleep_time++;
+ }
+ }
printf("Mount complete\n");
if(do_upgrade && init_test){
NorStressTestInitialise(mount_point);
} else if(do_upgrade){
printf("Running stress on %s with seed %d\n",mount_point,random_seed);
- NorStressTestRun(mount_point,n_cycles,do_fsx);
+ NorStressTestRun(mount_point,n_cycles,do_fsx,fuzz_test);
} else if(do_fsx){
yaffs_fsx_main(mount_point,n_cycles);
} else if(do_bash_around){