* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
- *
*/
-
-
#include <stdio.h>
#include <string.h>
#include <unistd.h>
void dumpDirFollow(const char *dname)
{
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
struct yaffs_stat s;
char str[100];
void dump_directory_tree_worker(const char *dname,int recursive)
{
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
struct yaffs_stat s;
char str[1000];
{
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
struct yaffs_stat s;
int f;
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
yaffs_start_up();
result = yaffs_close(h);
}
- h =yaffs_open(hn,O_RDWR,0);
+ yaffs_unmount(mountpt);
+
+ //h =yaffs_open(hn,O_RDWR,0);
}
void case_insensitive_test(const char *mountpt)
void large_file_test(const char *mountpt)
{
+ char xx_buffer[1000];
+ int i;
int handle;
char fullname[100];
+ loff_t file_end;
yaffs_trace_mask = 0;
verify_big_sparse_file(handle);
yaffs_unmount(mountpt);
+ /* Check resize by adding to the end, resizing back and verifying. */
+ yaffs_mount_common(mountpt, 0, 1);
+ printf("checking resize\n");
+ dumpDir(mountpt);
+ handle = yaffs_open(fullname, O_RDWR, 0);
+
+ file_end = yaffs_lseek(handle, 0, SEEK_END);
+ printf("file_end %lld\n", file_end);
+ for(i = 0; i < 10000; i++)
+ yaffs_write(handle, xx_buffer, sizeof(xx_buffer));
+ yaffs_ftruncate(handle, file_end);
+
+ verify_big_sparse_file(handle);
+ yaffs_unmount(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);
+}
+
int random_seed;
int simulate_power_failure;
// link_follow_test("/yaffs2");
//basic_utime_test("/yaffs2");
- //max_files_test("/yaffs2");
-
- start_twice("/yaffs2");
+
+ format_test("/yaffs2");
+
+ //max_files_test("/yaffs2");
+
+ //start_twice("/yaffs2");
//large_file_test("/yaffs2");
+ //readdir_test("/yaffs2");
//basic_utime_test("/yaffs2");
//case_insensitive_test("/yaffs2");