+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];
+ int i;
+ int handle;
+ char fullname[100];
+
+ yaffs_DIR *dirs[100];
+
+
+ yaffs_trace_mask = 0;
+
+ yaffs_start_up();
+
+ yaffs_mount(mountpt);
+
+ for(i = 0; i < 100; i++) {
+ dirs[i] = yaffs_opendir(mountpt);
+ printf("%2d %p,", i, dirs[i]);
+ }
+
+ printf("\n");
+
+ for(i = 0; i < 100; i++) {
+ if(dirs[i])
+ yaffs_closedir(dirs[i]);
+ }
+
+
+ for(i = 0; i < 100; i++) {
+ dirs[i] = yaffs_opendir(mountpt);
+ printf("%2d %p,", i, dirs[i]);
+ }
+
+ yaffs_unmount(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);
+}
+