From: Timothy Manning Date: Wed, 22 Dec 2010 00:40:35 +0000 (+1300) Subject: yaffs Fixing bugs in direct/timothy_tests/mirror_tests X-Git-Tag: linux-mainline-patchset-4~6^2~3 X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=commitdiff_plain;h=ca74a1a9eca8779e4edad2fc1274b281dc008deb yaffs Fixing bugs in direct/timothy_tests/mirror_tests Signed-off-by: Timothy Manning --- diff --git a/direct/timothy_tests/mirror_tests/linux_test_write.c b/direct/timothy_tests/mirror_tests/linux_test_write.c index 03c092d..9714c19 100644 --- a/direct/timothy_tests/mirror_tests/linux_test_write.c +++ b/direct/timothy_tests/mirror_tests/linux_test_write.c @@ -23,7 +23,7 @@ int linux_test_write(arg_temp *args_struct) sprintf(message,"trying to write to: %s\nwith mode set to %o \n",path,args_struct->char1 ); print_message(3,message); printf("mode S_IREAD %d S_IWRITE %d\n",(args_struct->char2 & S_IREAD),(args_struct->char2 & S_IWRITE)); - handle=open(path,(args_struct->char1 &(O_TRUNC|O_EXCL|O_CREAT|O_APPEND)),(args_struct->char2&(S_IREAD|S_IWRITE))); + handle=open(path,((args_struct->char1 &(O_TRUNC|O_EXCL|O_CREAT|O_APPEND))|O_RDWR),(args_struct->char2&(S_IREAD|S_IWRITE))); printf("handle %d\n",handle); if (handle<0){ print_message(3,"failed to open a handle\n"); diff --git a/direct/timothy_tests/mirror_tests/mirror_tests.c b/direct/timothy_tests/mirror_tests/mirror_tests.c index 6e2c33e..578409e 100644 --- a/direct/timothy_tests/mirror_tests/mirror_tests.c +++ b/direct/timothy_tests/mirror_tests/mirror_tests.c @@ -183,10 +183,10 @@ int run_random_test(int num_of_random_tests) generate_random_numbers(&args_struct); run_yaffs_test(test_id, &args_struct); - check_mode(&args_struct); + //check_mode(&args_struct); run_linux_test(test_id, &args_struct); - check_mode(&args_struct); + if (get_print_level()>=4){ get_error_yaffs(); get_error_linux(); @@ -205,9 +205,9 @@ int run_random_test(int num_of_random_tests) } } } - check_mode(&args_struct); + //check_mode(&args_struct); compare_linux_and_yaffs(&args_struct); - check_mode(&args_struct); + //check_mode(&args_struct); } compare_linux_and_yaffs(&args_struct); @@ -249,9 +249,36 @@ int check_mode(arg_temp *args_struct) return 1; } +int check_mode_file(char *path) +{ + char message[200]; + int output=0; + + struct yaffs_stat yaffs_stat_struct; + + 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\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; + char l_path[200]; + char y_path[200]; int exit_bool=0; int number_of_files_in_yaffs=0; int number_of_files_in_linux=0; @@ -265,9 +292,9 @@ int compare_linux_and_yaffs(arg_temp *args_struct) DIR *linux_open_dir; struct dirent *linux_current_file; - print_message(2,"\n\n comparing folders\n"); - check_mode(&args_struct); - + print_message(2,"\n\n\n comparing folders\n"); +// check_mode_file("yaffs2/test/YY"); + //find out the number of files in the directory yaffs_open_dir = yaffs_opendir(yaffs_struct.root_path); if (yaffs_open_dir) { for (x=0;NULL!=yaffs_readdir(yaffs_open_dir);x++){} @@ -278,9 +305,10 @@ int compare_linux_and_yaffs(arg_temp *args_struct) } else { print_message(3,"failed to open yaffs test dir\n"); } + //create array char yaffs_file_list[x][200]; - check_mode(&args_struct); - + //check_mode_file("yaffs2/test/YY"); + //copy file names into array if (yaffs_open_dir){ for (x=0 ;NULL!=yaffs_current_file;x++) @@ -294,7 +322,9 @@ int compare_linux_and_yaffs(arg_temp *args_struct) } else { print_message(3,"failed to populate yaffs test list\n"); } - check_mode(&args_struct); + + + //find out the number of files in the directory linux_open_dir = opendir(linux_struct.root_path); if (linux_open_dir){ for (x=0;NULL!=readdir(linux_open_dir);x++){} @@ -307,7 +337,11 @@ int compare_linux_and_yaffs(arg_temp *args_struct) } else { print_message(3,"failed to open linux test dir\n"); } + + //create array char linux_file_list[x-2][200]; + //check_mode_file("yaffs2/test/YY"); + //copy file names into array if (linux_open_dir){ for (x=0, y=0 ;NULL!=linux_current_file;x++) { @@ -337,9 +371,9 @@ int compare_linux_and_yaffs(arg_temp *args_struct) } - + //match the files in both folders for (x=0;x=0&& + stat(l_path,&linux_stat_struct)>=0){ 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)); @@ -368,6 +404,8 @@ int compare_linux_and_yaffs(arg_temp *args_struct) } } else { print_message(2,"failed to stat one of the files\n"); + get_error_yaffs(); + get_error_linux(); } //read file contents @@ -398,7 +436,6 @@ int compare_linux_and_yaffs(arg_temp *args_struct) print_message(2,"exiting program\n"); exit(0); } - //printf("file_name %s\n", yaffs_current_file->d_name); // generate_array_of_objects_in_yaffs(); // generate_array_of_objects_in_linux(); diff --git a/direct/timothy_tests/mirror_tests/mirror_tests.h b/direct/timothy_tests/mirror_tests/mirror_tests.h index 17c7963..cf4bb8e 100644 --- a/direct/timothy_tests/mirror_tests/mirror_tests.h +++ b/direct/timothy_tests/mirror_tests/mirror_tests.h @@ -53,6 +53,7 @@ void run_linux_test(int id,arg_temp *args_struct); void clean_dir(void); int select_test_id(int test_len); int check_mode(arg_temp *args_struct); +int check_mode_file(char *path); //void generate_array_of_objects_in_yaffs(void); //void generate_array_of_objects_in_linux(void); diff --git a/direct/timothy_tests/mirror_tests/yaffs_test_write.c b/direct/timothy_tests/mirror_tests/yaffs_test_write.c index 690fea6..a348003 100644 --- a/direct/timothy_tests/mirror_tests/yaffs_test_write.c +++ b/direct/timothy_tests/mirror_tests/yaffs_test_write.c @@ -24,13 +24,14 @@ int yaffs_test_write(arg_temp *args_struct) sprintf(message,"trying to write to: %s\nwith mode set to %o \n",path,args_struct->char1); print_message(3,message); printf("mode S_IREAD %d S_IWRITE %d\n",(args_struct->char2 & S_IREAD),(args_struct->char2 & S_IWRITE)); - handle=yaffs_open(path,(args_struct->char1 &(O_TRUNC|O_EXCL|O_CREAT|O_APPEND)),(args_struct->char2&(S_IREAD|S_IWRITE))); + handle=yaffs_open(path,((args_struct->char1 &(O_TRUNC|O_EXCL|O_CREAT|O_APPEND))|O_RDWR),(args_struct->char2&(S_IREAD|S_IWRITE))); printf("handle %d\n",handle); if (handle<0){ print_message(3,"failed to open a handle\n"); return -1; //handle failed to open } - output=yaffs_fstat(handle,&yaffs_stat_struct); + +/* output=yaffs_fstat(handle,&yaffs_stat_struct); if (output < 0){ sprintf(message,"failed to stat the file\n"); print_message(3,message); @@ -46,9 +47,10 @@ int yaffs_test_write(arg_temp *args_struct) sprintf(message,"trying to write: %d bytes into the file\n",strlen(args_struct->string2)); print_message(3,message); - output=yaffs_write(handle,args_struct->string2,strlen(args_struct->string2)); +*/ + output=yaffs_write(handle,&args_struct->string2,strlen(args_struct->string2)); - print_message(3,"\n wrote to the file\n"); +/* print_message(3,"\n wrote to the file\n"); output2=yaffs_fstat(handle,&yaffs_stat_struct); if (output2 < 0){ sprintf(message,"failed to stat the file\n"); @@ -62,8 +64,8 @@ int yaffs_test_write(arg_temp *args_struct) 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); } - yaffs_close(handle); - print_message(3,"\n closing the file\n"); +*/ yaffs_close(handle); +/* print_message(3,"\n closing the file\n"); output2=yaffs_stat(path,&yaffs_stat_struct); if (output2 < 0){ sprintf(message,"failed to stat the file\n"); @@ -77,7 +79,7 @@ int yaffs_test_write(arg_temp *args_struct) 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 output; }