yaffs direct: Prevent yaffs_start_up being called twice.
[yaffs2.git] / direct / basic-test / dtest.c
index fa48158d402b36afed578d9fcd47ab2ac48299f9..35354232883e837e768f80378722f438731b3c65 100644 (file)
@@ -2755,6 +2755,60 @@ void link_follow_test(const char *mountpt)
 
 }
 
+void max_files_test(const char *mountpt)
+{
+       char fn[100];
+       char sn[100];
+       char hn[100];
+       int result;
+       int h;
+       int i;
+
+       yaffs_trace_mask = 0;
+
+       yaffs_start_up();
+
+       yaffs_mount(mountpt);
+
+       for(i = 0; i < 5000; i++) {
+               sprintf(fn,"%s/file%d", mountpt, i);
+               yaffs_unlink(fn);
+               h = yaffs_open(fn,O_CREAT| O_RDWR, S_IREAD | S_IWRITE);
+               if(h < 0)
+                       printf("File %s not created\n", fn);
+               yaffs_write(h,fn,100);
+               result = yaffs_close(h);
+       }
+       for(i = 0; i < 5; i++){
+               sprintf(fn,"%s/file%d",mountpt, i);
+               yaffs_unlink(fn);
+       }
+
+       for(i = 1000; i < 1010; i++){
+               sprintf(fn,"%s/file%d",mountpt, i);
+               h = yaffs_open(fn,O_CREAT| O_RDWR, S_IREAD | S_IWRITE);
+               yaffs_write(h,fn,100);
+               if(h < 0)
+                       printf("File %s not created\n", fn);
+               result = yaffs_close(h);
+       }
+
+       h =yaffs_open(hn,O_RDWR,0);
+
+}
+
+void start_twice(const char *mountpt)
+{
+         printf("About to do first yaffs_start\n");
+         yaffs_start_up();
+         printf("started\n");
+         printf("First mount returns %d\n", yaffs_mount(mountpt));
+         printf("About to do second yaffs_start\n");
+         yaffs_start_up();
+         printf("started\n");
+         printf("Second mount returns %d\n", yaffs_mount(mountpt));
+}
+
 int random_seed;
 int simulate_power_failure;
 
@@ -2791,7 +2845,7 @@ int main(int argc, char *argv[])
         //checkpoint_upgrade_test("/flash/flash",20);
          //small_overwrite_test("/flash/flash",1000);
          //checkpoint_fill_test("/flash/flash",20);
-       // random_small_file_test("/flash/flash",10000);
+       //random_small_file_test("/flash/flash",10000);
         // huge_array_test("/flash/flash",10);
 
 
@@ -2820,7 +2874,12 @@ int main(int argc, char *argv[])
 
         //test_flash_traffic("yaffs2");
         // link_follow_test("/yaffs2");
-        basic_utime_test("/yaffs2");
+        //basic_utime_test("/yaffs2");
+
+        //max_files_test("/yaffs2");
+        
+        start_twice("/yaffs2");
+
 
         return 0;