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=758b0a9c391fca85dde01029b01958fc4d6dfa6b;hp=a022e4db30e79429a809709fcfb88f464396b0de;hb=6e8abe36e3190664d26161ace6948c57f9ffda94;hpb=2870702e0b0f4342857222a36ffcb21886c7f4bf diff --git a/direct/timothy_tests/mirror_tests/mirror_tests.c b/direct/timothy_tests/mirror_tests/mirror_tests.c index a022e4d..758b0a9 100644 --- a/direct/timothy_tests/mirror_tests/mirror_tests.c +++ b/direct/timothy_tests/mirror_tests/mirror_tests.c @@ -31,16 +31,20 @@ typedef struct test_temp2 { }test_temp; test_temp yaffs_tests={ - 2, + 4, {{"yaffs_test_open",yaffs_test_open}, - {"yaffs_test_truncate",yaffs_test_truncate} + {"yaffs_test_truncate",yaffs_test_truncate}, + {"yaffs_test_unlink",yaffs_test_unlink}, + {"yaffs_test_write",yaffs_test_write} } }; test_temp linux_tests={ - 2, + 4, {{"linux_test_open",linux_test_open}, - {"linux_test_truncate",linux_test_truncate} + {"linux_test_truncate",linux_test_truncate}, + {"linux_test_unlink",linux_test_unlink}, + {"linux_test_write",linux_test_write} } }; @@ -62,9 +66,9 @@ int main(int argc, char *argv[]) print_message(3,message); sprintf(message,"yaffs_num_of_tests: %d\n",yaffs_tests.num_of_tests); print_message(3,message); - for (x=0;x=4){ + get_error_yaffs(); + get_error_linux(); } - } - } - compare_linux_and_yaffs(); + 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())!=EINVAL && abs(errno) != EBADF) + ){ + print_message(2,"\ndifference in returned errors######################################\n"); + get_error_yaffs(); + get_error_linux(); + if (get_exit_on_error()){ + exit(0); + } + } + } + compare_linux_and_yaffs(); + } } int select_test_id(int test_len) @@ -193,6 +213,129 @@ int select_test_id(int test_len) int compare_linux_and_yaffs(void) { + int x=0,y=0; + int exit_bool=0; + int number_of_files_in_yaffs=0; + int number_of_files_in_linux=0; + char message[200]; + + yaffs_DIR *yaffs_open_dir; + yaffs_dirent *yaffs_current_file; + + DIR *linux_open_dir; + struct dirent *linux_current_file; + + print_message(2,"\n\n comparing folders\n"); + + + yaffs_open_dir = yaffs_opendir(yaffs_struct.root_path); + if (yaffs_open_dir) { + 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); + print_message(2,message); + yaffs_rewinddir(yaffs_open_dir); + } else { + print_message(3,"failed to open yaffs test dir\n"); + } + char yaffs_file_list[x][200]; + + + if (yaffs_open_dir){ + + for (x=0 ;NULL!=yaffs_current_file;x++) + { + yaffs_current_file =yaffs_readdir(yaffs_open_dir); + if (NULL!=yaffs_current_file){ + strcpy(yaffs_file_list[x],yaffs_current_file->d_name); + } + } + yaffs_closedir(yaffs_open_dir); + } else { + print_message(3,"failed to populate yaffs test list\n"); + } + + linux_open_dir = opendir(linux_struct.root_path); + if (linux_open_dir){ + for (x=0;NULL!=readdir(linux_open_dir);x++){} + 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. + + rewinddir(linux_open_dir); + } else { + print_message(3,"failed to open linux test dir\n"); + } + char linux_file_list[x-2][200]; + if (linux_open_dir){ + for (x=0, y=0 ;NULL!=linux_current_file;x++) + { + 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"); + } + if (NULL!=linux_current_file && + 0!=strcmp(message,".")&& + 0!=strcmp(message,"..")){ + // 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"); + strcpy(linux_file_list[y],message); + y++; + sprintf(message,"file added to list: %s\n",linux_file_list[x]); + print_message(3,message); + } + } + closedir(linux_open_dir); + } else { + print_message(3,"failed to populate linux test dir\n"); + } + + + + for (x=0;xd_name); // generate_array_of_objects_in_yaffs(); // generate_array_of_objects_in_linux(); //first do a check to see if both sides have the same objects on both sides. @@ -278,3 +421,38 @@ void get_error_linux(void) print_message(1,message); } +void clean_dir(void) +{ + char string[200]; + char file[200]; + char message[200]; + DIR *linux_open_dir; + struct dirent *linux_current_file; + int x=0; + + getcwd(string,200); + strcat(string,"/emfile-2k-0"); + sprintf(message,"\n\nunlinking emfile at this path: %s\n",string); + print_message(3,message); + unlink(string); + + + linux_open_dir = opendir(linux_struct.root_path); + if (linux_open_dir){ + for (x=0 ;NULL!=linux_current_file ;x++) + { + linux_current_file =readdir(linux_open_dir); + if (NULL!=linux_current_file){ + + strcpy(file,linux_struct.root_path); + strcat(file,linux_current_file->d_name); + sprintf(message,"unlinking file %d\n",linux_current_file->d_name); + print_message(3,message); + unlink(file); + } + } + closedir(linux_open_dir); + rmdir(linux_struct.root_path); + } + +}