Merge branch 'driver-refactoring' into new-driver-refactoring
[yaffs2.git] / direct / test-framework / basic-tests / dtest.c
index 153d274d3a54db1db8b2cf0764faf9c099840674..3cd13abe5593d7c9d6df12b9125e27c7f6342725 100644 (file)
@@ -3042,6 +3042,70 @@ void large_file_test(const char *mountpt)
 }
 
 
+int  mk_dir(const char *mp, const char *name)
+{
+       char full_name[100];
+
+       sprintf(full_name, "%s/%s", mp, name);
+
+       return yaffs_mkdir(full_name, S_IREAD| S_IWRITE);
+}
+
+int  mk_file(const char *mp, const char *name)
+{
+       char full_name[100];
+       int h;
+
+       sprintf(full_name, "%s/%s", mp, name);
+
+       h = yaffs_open(full_name, O_RDWR | O_CREAT | O_TRUNC, S_IREAD| S_IWRITE);
+
+       yaffs_write(h, name, strlen(name));
+
+       yaffs_close(h);
+       return 0;
+}
+
+void xx_test(const char *mountpt)
+{
+       char xx_buffer[1000];
+
+       yaffs_start_up();
+
+       yaffs_format(mountpt,0,0,0);
+
+       yaffs_mount(mountpt);
+       printf("mounted\n");
+       dumpDir(mountpt);
+
+       printf("create files\n");
+
+       mk_dir(mountpt, "foo");
+       mk_file(mountpt, "foo/f1");
+       mk_file(mountpt, "foo/f2");
+       mk_file(mountpt, "foo/f3");
+       mk_file(mountpt, "foo/f4");
+       dump_directory_tree(mountpt);
+
+       printf("unmount and remount\n");
+
+       /* Unmount/remount */
+       yaffs_unmount(mountpt);
+       yaffs_mount(mountpt);
+       dump_directory_tree(mountpt);
+}
+
+void yy_test(const char *mountpt)
+{
+       char xx_buffer[1000];
+
+       yaffs_start_up();
+
+       yaffs_mount(mountpt);
+       dump_directory_tree(mountpt);
+}
+
+
 void readdir_test(const char *mountpt)
 {
        char xx_buffer[1000];
@@ -3081,6 +3145,32 @@ void readdir_test(const char *mountpt)
 
 }
 
+void format_test(const char *mountpt)
+{
+       int ret;
+
+       yaffs_start_up();
+
+       ret = yaffs_format(mountpt, 0, 0, 0);
+       printf("yaffs_format(...,0, 0, 0) of unmounted returned %d\n", ret);
+
+       yaffs_mount(mountpt);
+
+       ret = yaffs_format(mountpt, 0, 0, 0);
+       printf("yaffs_format(...,0, 0, 0) of mounted returned %d\n", ret);
+
+       ret = yaffs_format(mountpt, 1, 0, 0);
+       printf("yaffs_format(...,1, 0, 0) of mounted returned %d\n", ret);
+
+       ret = yaffs_mount(mountpt);
+       printf("mount should return 0 returned %d\n", ret);
+
+       ret = yaffs_format(mountpt, 1, 0, 1);
+       printf("yaffs_format(...,1, 0, 1) of mounted returned %d\n", ret);
+
+       ret = yaffs_mount(mountpt);
+       printf("mount should return -1 returned %d\n", ret);
+}
 
 int random_seed;
 int simulate_power_failure;
@@ -3149,7 +3239,10 @@ int main(int argc, char *argv[])
         // link_follow_test("/yaffs2");
         //basic_utime_test("/yaffs2");
 
-       max_files_test("/yaffs2");
+
+       //format_test("/yaffs2");
+
+       //max_files_test("/yaffs2");
 
         //start_twice("/yaffs2");
 
@@ -3159,6 +3252,9 @@ int main(int argc, char *argv[])
         //basic_utime_test("/yaffs2");
         //case_insensitive_test("/yaffs2");
 
+        yy_test("/yaffs2");
+
+
         return 0;
 
 }