eet test: use eina_file_mkstemp, fix include for vc++

Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12108
This commit is contained in:
Vincent Torri 2020-08-18 05:04:09 +00:00 committed by Stefan Schmidt
parent f6672c91a8
commit 047b59d934
1 changed files with 13 additions and 8 deletions

View File

@ -3,7 +3,11 @@
#endif #endif
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #ifdef _WIN32
# include <io.h> /* close(), unlink() */
#else
# include <unistd.h> /* close(), unlink() */
#endif
#include <Eina.h> #include <Eina.h>
#include <Eet.h> #include <Eet.h>
@ -46,33 +50,33 @@ _open_close_worker(void *path, Eina_Thread tid EINA_UNUSED)
EFL_START_TEST(eet_test_cache_concurrency) EFL_START_TEST(eet_test_cache_concurrency)
{ {
char *file;
const char *buffer = "test data"; const char *buffer = "test data";
Eet_File *ef; Eet_File *ef;
void *thread_ret; void *thread_ret;
unsigned int n; unsigned int n;
Eina_Thread thread; Eina_Thread thread;
Eina_Tmpstr *tmpfile = NULL;
Eina_Bool r; Eina_Bool r;
int tmpfd; int tmpfd;
file = strdup("/tmp/eet_suite_testXXXXXX");
eina_threads_init(); eina_threads_init();
eina_lock_new(&open_worker_mutex); eina_lock_new(&open_worker_mutex);
eina_condition_new(&open_worker_cond, &open_worker_mutex); eina_condition_new(&open_worker_cond, &open_worker_mutex);
/* create a file to test with */ /* create a file to test with */
fail_if(-1 == (tmpfd = mkstemp(file))); /* tmpfile will be created in temporary directory (with eina_environment_tmp) */
tmpfd = eina_file_mkstemp("eet_suite_testXXXXXX", &tmpfile);
fail_if(-1 == tmpfd);
fail_if(!!close(tmpfd)); fail_if(!!close(tmpfd));
ef = eet_open(file, EET_FILE_MODE_WRITE); ef = eet_open(tmpfile, EET_FILE_MODE_WRITE);
fail_if(!ef); fail_if(!ef);
fail_if(!eet_write(ef, "keys/tests", buffer, strlen(buffer) + 1, 0)); fail_if(!eet_write(ef, "keys/tests", buffer, strlen(buffer) + 1, 0));
eina_lock_take(&open_worker_mutex); eina_lock_take(&open_worker_mutex);
/* start a thread that repeatedly opens and closes a file */ /* start a thread that repeatedly opens and closes a file */
open_worker_stop = 0; open_worker_stop = 0;
r = eina_thread_create(&thread, EINA_THREAD_NORMAL, -1, _open_close_worker, file); r = eina_thread_create(&thread, EINA_THREAD_NORMAL, -1, _open_close_worker, tmpfile);
fail_unless(r); fail_unless(r);
eina_condition_wait(&open_worker_cond); eina_condition_wait(&open_worker_cond);
@ -91,9 +95,10 @@ EFL_START_TEST(eet_test_cache_concurrency)
eet_close(ef); eet_close(ef);
fail_if(unlink(file) != 0); fail_if(unlink(tmpfile) != 0);
eina_threads_shutdown(); eina_threads_shutdown();
eina_tmpstr_del(tmpfile);
} }
EFL_END_TEST EFL_END_TEST