X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=direct%2Ftimothy_tests%2Fmirror_tests%2Fmirror_tests.c;h=90caf454f77df758da61de898d12f2cd5a4c372b;hb=fe192b14d52d6c7d4722402686dcb553153916c3;hp=6e2c33e6870111270631bce45c15ec3fb0117ef3;hpb=e1a60ae9412db5bb7e845bc65b7f8529e9b22d95;p=yaffs2.git diff --git a/direct/timothy_tests/mirror_tests/mirror_tests.c b/direct/timothy_tests/mirror_tests/mirror_tests.c index 6e2c33e..90caf45 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,13 +249,43 @@ 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]; + char file_name[200]; int exit_bool=0; int number_of_files_in_yaffs=0; int number_of_files_in_linux=0; char message[200]; + char **yaffs_file_list=NULL; + char **linux_file_list=NULL; struct yaffs_stat yaffs_stat_struct; struct stat linux_stat_struct; @@ -265,11 +295,15 @@ 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); - + l_path[0]='\0'; + y_path[0]='\0'; + file_name[0]='\0'; + message[0]='\0'; + 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) { + if (yaffs_open_dir != NULL) { for (x=0;NULL!=yaffs_readdir(yaffs_open_dir);x++){} number_of_files_in_yaffs=x; sprintf(message,"number of files in yaffs dir= %d\n",number_of_files_in_yaffs); @@ -278,27 +312,37 @@ int compare_linux_and_yaffs(arg_temp *args_struct) } else { print_message(3,"failed to open yaffs test dir\n"); } - char yaffs_file_list[x][200]; - check_mode(&args_struct); + //create array + yaffs_file_list= (char **)malloc(x*sizeof(char*)); + for (x=0;xd_name = %s\n",yaffs_current_file->d_name); + if (yaffs_current_file){ strcpy(yaffs_file_list[x],yaffs_current_file->d_name); + } + yaffs_current_file =yaffs_readdir(yaffs_open_dir); } yaffs_closedir(yaffs_open_dir); } 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){ + if (linux_open_dir!=NULL){ for (x=0;NULL!=readdir(linux_open_dir);x++){} - number_of_files_in_linux=x-2; + number_of_files_in_linux=(x-2); sprintf(message,"number of files in linux dir= %d\n",(number_of_files_in_linux)); print_message(2,message); //the -2 is because linux shows 2 extra files which are automaticly created. @@ -307,11 +351,21 @@ int compare_linux_and_yaffs(arg_temp *args_struct) } else { print_message(3,"failed to open linux test dir\n"); } - char linux_file_list[x-2][200]; - if (linux_open_dir){ + + //create array + linux_file_list= (char **)malloc(number_of_files_in_linux*sizeof(char*)); + + for (x=0;xd_name); print_message(7,"opened file: "); @@ -321,15 +375,16 @@ int compare_linux_and_yaffs(arg_temp *args_struct) if (NULL!=linux_current_file && 0!=strcmp(message,".")&& 0!=strcmp(message,"..")){ - // strcpy(message,linux_current_file->d_name); + strcpy(file_name,linux_current_file->d_name); //sprintf("file opened: %s\n",linux_current_file->d_name); //print_message(3,message); 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]); + strcpy(linux_file_list[y],file_name); + sprintf(message,"file added to list: %s\n",linux_file_list[y]); print_message(7,message); + y++; } + linux_current_file =readdir(linux_open_dir); } closedir(linux_open_dir); } else { @@ -337,9 +392,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)); @@ -366,14 +423,17 @@ int compare_linux_and_yaffs(arg_temp *args_struct) print_message(2,"file modes do not match\n"); exit_bool=1; } + linux_file_list[y][0]=NULL; + yaffs_file_list[x][0]=NULL; } else { print_message(2,"failed to stat one of the files\n"); + get_error_yaffs(); + get_error_linux(); } //read file contents - linux_file_list[y][0]=NULL; - yaffs_file_list[x][0]=NULL; + break; } } @@ -399,6 +459,17 @@ int compare_linux_and_yaffs(arg_temp *args_struct) exit(0); } + for (x=0;xd_name); // generate_array_of_objects_in_yaffs(); // generate_array_of_objects_in_linux(); @@ -407,6 +478,7 @@ int compare_linux_and_yaffs(arg_temp *args_struct) //read the text of each file and compare them. //show the diffrences by printing them. + return 1; }