X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Ftimothy_tests%2Fmirror_tests%2Fmirror_tests.c;h=6e2c33e6870111270631bce45c15ec3fb0117ef3;hp=28b88b5d086da9c81a60d1e63034a5d599db6dd2;hb=e1a60ae9412db5bb7e845bc65b7f8529e9b22d95;hpb=34c624da44aa052d44993239c5a3be0b802673c9 diff --git a/direct/timothy_tests/mirror_tests/mirror_tests.c b/direct/timothy_tests/mirror_tests/mirror_tests.c index 28b88b5..6e2c33e 100644 --- a/direct/timothy_tests/mirror_tests/mirror_tests.c +++ b/direct/timothy_tests/mirror_tests/mirror_tests.c @@ -31,18 +31,20 @@ typedef struct test_temp2 { }test_temp; test_temp yaffs_tests={ - 3, + 4, {{"yaffs_test_open",yaffs_test_open}, {"yaffs_test_truncate",yaffs_test_truncate}, - {"yaffs_test_unlink",yaffs_test_unlink} + {"yaffs_test_unlink",yaffs_test_unlink}, + {"yaffs_test_write",yaffs_test_write} } }; test_temp linux_tests={ - 3, + 4, {{"linux_test_open",linux_test_open}, {"linux_test_truncate",linux_test_truncate}, - {"linux_test_unlink",linux_test_unlink} + {"linux_test_unlink",linux_test_unlink}, + {"linux_test_write",linux_test_write} } }; @@ -66,7 +68,7 @@ int main(int argc, char *argv[]) print_message(3,message); run_random_test(num_of_random_tests); - compare_linux_and_yaffs(); + //compare_linux_and_yaffs(); yaffs_unmount("yaffs2"); return 0; } @@ -78,7 +80,10 @@ void init(int argc, char *argv[]) int x=-1; char message[100]; - srand((unsigned)time(NULL)); + x=(unsigned)time(NULL); + sprintf(message,"seeding srand with: %d\n",x); + print_message(2,message); + srand(x); yaffs_set_trace(0); linux_struct.type_of_test =LINUX; yaffs_struct.type_of_test =YAFFS; @@ -165,7 +170,7 @@ int run_random_test(int num_of_random_tests) int x=-1; int id=0; int test_id=-1; - int num_of_tests_before_check=10; + int num_of_tests_before_check=1; char message[200]; arg_temp args_struct; for (y=0;(y*num_of_tests_before_check)=4){ + get_error_yaffs(); + get_error_linux(); + } + if ((abs(yaffs_get_error())!=abs(errno)) && (abs(yaffs_get_error())!=EISDIR && abs(errno) != 0) && - (abs(yaffs_get_error())!=ENOENT && abs(errno) != EACCES) + (abs(yaffs_get_error())!=ENOENT && abs(errno) != EACCES)&& + (abs(yaffs_get_error())!=EINVAL && abs(errno) != EBADF) ){ print_message(2,"\ndifference in returned errors######################################\n"); get_error_yaffs(); @@ -189,9 +204,13 @@ int run_random_test(int num_of_random_tests) exit(0); } } - } - compare_linux_and_yaffs(); + } + check_mode(&args_struct); + compare_linux_and_yaffs(&args_struct); + check_mode(&args_struct); + } + compare_linux_and_yaffs(&args_struct); } int select_test_id(int test_len) @@ -204,7 +223,33 @@ int select_test_id(int test_len) } -int compare_linux_and_yaffs(void) +int check_mode(arg_temp *args_struct) +{ + char path[200]; + char message[200]; + int output=0; + + struct yaffs_stat yaffs_stat_struct; + join_paths(yaffs_struct.root_path,args_struct->string1, path ); + sprintf(message,"\ntrying to stat to: %s\n",path); + print_message(3,message); + output=yaffs_stat(path,&yaffs_stat_struct); + if (output < 0){ + sprintf(message,"failed to stat the file\n"); + print_message(3,message); + get_error_yaffs(); + } else { + sprintf(message,"stated the file\n"); + print_message(3,message); + sprintf(message," yaffs file mode is %d\n",(yaffs_stat_struct.st_mode & (S_IREAD| S_IWRITE))); + print_message(3,message); + sprintf(message,"mode S_IREAD %d S_IWRITE %d\n",(yaffs_stat_struct.st_mode & S_IREAD),(yaffs_stat_struct.st_mode & S_IWRITE)); + print_message(3,message); + } + return 1; +} + +int compare_linux_and_yaffs(arg_temp *args_struct) { int x=0,y=0; int exit_bool=0; @@ -212,6 +257,8 @@ int compare_linux_and_yaffs(void) int number_of_files_in_linux=0; char message[200]; + struct yaffs_stat yaffs_stat_struct; + struct stat linux_stat_struct; yaffs_DIR *yaffs_open_dir; yaffs_dirent *yaffs_current_file; @@ -219,7 +266,7 @@ int compare_linux_and_yaffs(void) struct dirent *linux_current_file; print_message(2,"\n\n comparing folders\n"); - + check_mode(&args_struct); yaffs_open_dir = yaffs_opendir(yaffs_struct.root_path); if (yaffs_open_dir) { @@ -232,7 +279,7 @@ int compare_linux_and_yaffs(void) print_message(3,"failed to open yaffs test dir\n"); } char yaffs_file_list[x][200]; - + check_mode(&args_struct); if (yaffs_open_dir){ @@ -247,7 +294,7 @@ int compare_linux_and_yaffs(void) } else { print_message(3,"failed to populate yaffs test list\n"); } - + check_mode(&args_struct); linux_open_dir = opendir(linux_struct.root_path); if (linux_open_dir){ for (x=0;NULL!=readdir(linux_open_dir);x++){} @@ -267,9 +314,9 @@ int compare_linux_and_yaffs(void) linux_current_file =readdir(linux_open_dir); if (NULL!=linux_current_file){ strcpy(message,linux_current_file->d_name); - print_message(3,"opened file: "); - print_message(3,message); - print_message(3,"\n"); + print_message(7,"opened file: "); + print_message(7,message); + print_message(7,"\n"); } if (NULL!=linux_current_file && 0!=strcmp(message,".")&& @@ -277,11 +324,11 @@ int compare_linux_and_yaffs(void) // strcpy(message,linux_current_file->d_name); //sprintf("file opened: %s\n",linux_current_file->d_name); //print_message(3,message); - print_message(3,"added file to list\n"); + print_message(7,"added file to list\n"); strcpy(linux_file_list[y],message); y++; sprintf(message,"file added to list: %s\n",linux_file_list[x]); - print_message(3,message); + print_message(7,message); } } closedir(linux_open_dir); @@ -295,12 +342,36 @@ int compare_linux_and_yaffs(void) sprintf(message,"searching for yaffs file: %s\n",yaffs_file_list[x]); print_message(3,message); for (y=0;y