X-Git-Url: https://yaffs.net/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Ftest-framework%2Ftimothy_tests%2Fquick_tests%2Ftest_yaffs_rename_file_to_dir.c;h=78215a851a67a3632e42766079632eddced7c9be;hp=f4bd775dc259e5b592989404bf322f8f2a684841;hb=1f3d64d1d804fef6715126dead54bf30b176c67e;hpb=17c2897913447766bfd88fd49ca897821a3d2205 diff --git a/direct/test-framework/timothy_tests/quick_tests/test_yaffs_rename_file_to_dir.c b/direct/test-framework/timothy_tests/quick_tests/test_yaffs_rename_file_to_dir.c index f4bd775..78215a8 100644 --- a/direct/test-framework/timothy_tests/quick_tests/test_yaffs_rename_file_to_dir.c +++ b/direct/test-framework/timothy_tests/quick_tests/test_yaffs_rename_file_to_dir.c @@ -1,8 +1,7 @@ /* * YAFFS: Yet another FFS. A NAND-flash specific file system. * - * Copyright (C) 2002-2011 Aleph One Ltd. - * for Toby Churchill Ltd and Brightstar Engineering + * Copyright (C) 2002-2018 Aleph One Ltd. * * Created by Timothy Manning * @@ -16,21 +15,14 @@ int test_yaffs_rename_file_to_dir(void) { - int output=0; - if (0 != yaffs_access(FILE_PATH,0)) { - output = test_yaffs_open(); - if (output < 0) { - print_message("failed to create file\n",2); - return -1; - } else { - output = yaffs_close(output); - if (output < 0) { - print_message("failed to close file\n",2); - return -1; - } - } + int output=0; + int error_code=0; + if (yaffs_close(yaffs_open(FILE_PATH,O_CREAT | O_RDWR, FILE_MODE))==-1){ + print_message("failed to create file\n",1); + return -1; } + if (0 != yaffs_access(RENAME_DIR_PATH,0)) { output = yaffs_mkdir(RENAME_DIR_PATH,S_IWRITE | S_IREAD); if (output < 0) { @@ -38,33 +30,27 @@ int test_yaffs_rename_file_to_dir(void) return -1; } } - output = yaffs_rename( "/yaffs2/foo" , RENAME_DIR_PATH); - if (output<0){ - print_message("failed to rename a file over an empty directory\n",2); + output=yaffs_rename(FILE_PATH,RENAME_DIR_PATH); + if (output==-1){ + error_code=yaffs_get_error(); + if (abs(error_code)==EISDIR){ + return 1; + } else { + print_message("different error than expected\n",2); + return -1; + } + } else { + print_message("renamed a file over a directory (which is a bad thing)\n",2); return -1; - } else{ - return 1; - } + } + return 1; } int test_yaffs_rename_file_to_dir_clean(void) { - int output = 0; - test_yaffs_open(); - if (0 == yaffs_access(RENAME_DIR_PATH,0)) { - output = yaffs_unlink(RENAME_DIR_PATH); - if (output < 0) { - print_message("failed to unlink the file\n",2); - return -1; - } - output = test_yaffs_open(); - if (output < 0) { - print_message("failed to open a new\n",2); - return -1; - } - } + return 1; }