diff options
Diffstat (limited to 'src/tests/eina/eina_test_file.c')
-rw-r--r-- | src/tests/eina/eina_test_file.c | 103 |
1 files changed, 44 insertions, 59 deletions
diff --git a/src/tests/eina/eina_test_file.c b/src/tests/eina/eina_test_file.c index 07b42daf2e..242922083f 100644 --- a/src/tests/eina/eina_test_file.c +++ b/src/tests/eina/eina_test_file.c @@ -27,6 +27,10 @@ #include <unistd.h> #include <fcntl.h> +#ifdef _WIN32 +# include <windows.h> +#endif + #include <Eina.h> #include "eina_safety_checks.h" #include "eina_file_common.h" @@ -84,12 +88,10 @@ _eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const #endif -START_TEST(eina_file_split_simple) +EFL_START_TEST(eina_file_split_simple) { Eina_Array *ea; - eina_init(); - #ifdef EINA_SAFETY_CHECKS #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); @@ -147,9 +149,8 @@ START_TEST(eina_file_split_simple) eina_array_free(ea); - eina_shutdown(); } -END_TEST +EFL_END_TEST Eina_Tmpstr* get_full_path(const char* tmpdirname, const char* filename) @@ -174,10 +175,8 @@ get_eina_test_file_tmp_dir() return tmp_dir; } -START_TEST(eina_file_direct_ls_simple) +EFL_START_TEST(eina_file_direct_ls_simple) { - eina_init(); - /* * Windows: naming conventions * https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx @@ -234,14 +233,11 @@ START_TEST(eina_file_direct_ls_simple) } fail_if(rmdir(test_dirname) != 0); eina_tmpstr_del(test_dirname); - eina_shutdown(); } -END_TEST +EFL_END_TEST -START_TEST(eina_file_ls_simple) +EFL_START_TEST(eina_file_ls_simple) { - eina_init(); - /* * Windows: naming conventions * https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx @@ -296,11 +292,10 @@ START_TEST(eina_file_ls_simple) } fail_if(rmdir(test_dirname) != 0); eina_tmpstr_del(test_dirname); - eina_shutdown(); } -END_TEST +EFL_END_TEST -START_TEST(eina_file_map_new_test) +EFL_START_TEST(eina_file_map_new_test) { const char *eina_map_test_string = "Hello. I'm the eina map test string."; const char *test_file_name_part = "/example.txt"; @@ -323,8 +318,6 @@ START_TEST(eina_file_map_new_test) int test_dirname_size; int start_point_final, last_chunk_size; - eina_init(); - Eina_Tmpstr *test_dirname = get_eina_test_file_tmp_dir(); fail_if(test_dirname == NULL); test_dirname_size = strlen((char *)test_dirname); @@ -436,9 +429,8 @@ START_TEST(eina_file_map_new_test) free(test_file2_path); eina_tmpstr_del(test_dirname); - eina_shutdown(); } -END_TEST +EFL_END_TEST static const char *virtual_file_data = "this\n" "is a test for the sake of testing\r\n" @@ -448,7 +440,7 @@ static const char *virtual_file_data = "this\n" "file !\n" "without any issue !"; -START_TEST(eina_test_file_virtualize) +EFL_START_TEST(eina_test_file_virtualize) { Eina_File *f; Eina_File *tmp; @@ -457,8 +449,6 @@ START_TEST(eina_test_file_virtualize) void *map; unsigned int i = 0; - eina_init(); - f = eina_file_virtualize("gloubi", virtual_file_data, strlen(virtual_file_data), EINA_FALSE); fail_if(!f); @@ -490,9 +480,8 @@ START_TEST(eina_test_file_virtualize) eina_file_close(f); - eina_shutdown(); } -END_TEST +EFL_END_TEST static void * _eina_test_file_thread(void *data EINA_UNUSED, Eina_Thread t EINA_UNUSED) @@ -500,7 +489,7 @@ _eina_test_file_thread(void *data EINA_UNUSED, Eina_Thread t EINA_UNUSED) Eina_File *f; unsigned int i; - for (i = 0; i < 10000; ++i) + for (i = 0; i < 100; ++i) { f = eina_file_open("/bin/sh", EINA_FALSE); fail_if(!f); @@ -510,22 +499,19 @@ _eina_test_file_thread(void *data EINA_UNUSED, Eina_Thread t EINA_UNUSED) return NULL; } -START_TEST(eina_test_file_thread) +EFL_START_TEST(eina_test_file_thread) { Eina_Thread th[4]; unsigned int i; - fail_if(!eina_init()); - for (i = 0; i < 4; i++) fail_if(!(eina_thread_create(&th[i], EINA_THREAD_NORMAL, -1, _eina_test_file_thread, NULL))); for (i = 0; i < 4; i++) fail_if(eina_thread_join(th[i]) != NULL); - eina_shutdown(); } -END_TEST +EFL_END_TEST static const struct { const char *test; @@ -534,25 +520,22 @@ static const struct { { "/home/mydir/../myfile", "/home/myfile" } }; -START_TEST(eina_test_file_path) +EFL_START_TEST(eina_test_file_path) { unsigned int i; char *path; - fail_if(!eina_init()); - for (i = 0; i < sizeof (sanitize) / sizeof (sanitize[0]); i++) { path = eina_file_path_sanitize(sanitize[i].test); fail_if(strcmp(path, sanitize[i].result)); } - eina_shutdown(); } -END_TEST +EFL_END_TEST #ifdef XATTR_TEST_DIR -START_TEST(eina_test_file_xattr) +EFL_START_TEST(eina_test_file_xattr) { Eina_File *ef; char *filename = "tmpfile"; @@ -576,7 +559,6 @@ START_TEST(eina_test_file_xattr) int fd, count=0; Eina_Xattr *xattr; - eina_init(); test_file_path = get_full_path(XATTR_TEST_DIR, filename); fd = open(test_file_path, O_RDONLY | O_BINARY | O_CREAT | O_TRUNC, S_IRWXU | S_IRWXG | S_IRWXO); @@ -623,12 +605,11 @@ START_TEST(eina_test_file_xattr) unlink(test_file_path); eina_tmpstr_del(test_file_path); eina_file_close(ef); - eina_shutdown(); } -END_TEST +EFL_END_TEST #endif -START_TEST(eina_test_file_copy) +EFL_START_TEST(eina_test_file_copy) { const char *test_file1_name = "EinaCopyFromXXXXXX.txt"; const char *test_file2_name = "EinaCopyToXXXXXX.txt"; @@ -640,8 +621,6 @@ START_TEST(eina_test_file_copy) Eina_Bool ret; void *content1, *content2; - eina_init(); - fd1 = eina_file_mkstemp(test_file1_name, &test_file1_path); fail_if(fd1 <= 0); @@ -690,11 +669,10 @@ START_TEST(eina_test_file_copy) eina_tmpstr_del(test_file1_path); eina_tmpstr_del(test_file2_path); - eina_shutdown(); } -END_TEST +EFL_END_TEST -START_TEST(eina_test_file_statat) +EFL_START_TEST(eina_test_file_statat) { Eina_Tmpstr *test_file1_path, *test_file2_path; Eina_Iterator *it; @@ -704,8 +682,6 @@ START_TEST(eina_test_file_statat) int template_size = strlen(template); int fd, ret; - eina_init(); - Eina_Tmpstr *test_dirname = get_eina_test_file_tmp_dir(); fail_if(test_dirname == NULL); @@ -739,11 +715,10 @@ START_TEST(eina_test_file_statat) eina_tmpstr_del(test_file2_path); eina_tmpstr_del(test_dirname); - eina_shutdown(); } -END_TEST +EFL_END_TEST -START_TEST(eina_test_file_mktemp) +EFL_START_TEST(eina_test_file_mktemp) { Eina_Tmpstr *tmpfile, *tmpdir = NULL; char buf[PATH_MAX], fmt[256]; @@ -779,7 +754,18 @@ START_TEST(eina_test_file_mktemp) if (readlink(fmt, buf, sizeof(buf))) unlink(buf); #else - // TODO: need to implement windows support with GetFinalPathNameByHandle + { + char buf[4096]; + HANDLE h; + DWORD l; + + h = (HANDLE)_get_osfhandle(fd); + fail_if(h == INVALID_HANDLE_VALUE); + l = GetFinalPathNameByHandle(h, buf, sizeof(buf), 0); + fail_if(l == 0); + /* GetFinalPathNameByHandle() preprends path with \\?\ */ + unlink(buf + 4); + } #endif close(fd); @@ -788,7 +774,9 @@ START_TEST(eina_test_file_mktemp) errno = 0; tmpfile = NULL; fd = eina_file_mkstemp(patterns[k], &tmpfile); - fail_if((fd < 0) || !tmpfile || errno); + ck_assert(fd >= 0); + ck_assert(!!tmpfile); + ck_assert_msg(!errno, "ERROR(%s): %s\n", patterns[k], strerror(errno)); file = eina_file_open(tmpfile, EINA_FALSE); fail_if(!file); eina_file_close(file); @@ -828,7 +816,7 @@ START_TEST(eina_test_file_mktemp) unlink(tmpfile); remove(tmpdir); } -END_TEST +EFL_END_TEST int create_file_not_empty(const char *file_name, Eina_Tmpstr **test_file_path, Eina_Bool close_file) { @@ -847,14 +835,12 @@ int create_file_not_empty(const char *file_name, Eina_Tmpstr **test_file_path, return fd; } -START_TEST(eina_test_file_unlink) +EFL_START_TEST(eina_test_file_unlink) { int fd; Eina_Tmpstr *test_file_path; const char *tmpfile = "eina_file_test_XXXXXX"; - eina_init(); - /*If file was not opened as 'eina'*/ fd = create_file_not_empty(tmpfile, &test_file_path, EINA_TRUE); fail_if(fd != 0); @@ -866,9 +852,8 @@ START_TEST(eina_test_file_unlink) fail_if(!eina_file_open(test_file_path, EINA_FALSE)); fail_if(!eina_file_unlink(test_file_path)); - eina_shutdown(); } -END_TEST +EFL_END_TEST void eina_test_file(TCase *tc) |