diff options
-rw-r--r-- | src/lib/eio/eio_monitor.c | 5 | ||||
-rw-r--r-- | src/lib/eio/eio_monitor_inotify.c | 22 | ||||
-rw-r--r-- | src/tests/efl_check.h | 2 | ||||
-rw-r--r-- | src/tests/eio/eio_suite.c | 1 | ||||
-rw-r--r-- | src/tests/eio/eio_test_monitor.c | 39 |
5 files changed, 26 insertions, 43 deletions
diff --git a/src/lib/eio/eio_monitor.c b/src/lib/eio/eio_monitor.c index 84262bb329..21704bfc82 100644 --- a/src/lib/eio/eio_monitor.c +++ b/src/lib/eio/eio_monitor.c @@ -150,6 +150,7 @@ eio_monitor_init(void) EIO_MONITOR_DIRECTORY_DELETED = ecore_event_type_new(); EIO_MONITOR_DIRECTORY_MODIFIED = ecore_event_type_new(); EIO_MONITOR_DIRECTORY_CLOSED = ecore_event_type_new(); + fprintf(stderr, "EIO_MONITOR_ERROR = %d\n", EIO_MONITOR_ERROR); eio_monitor_backend_init(); eio_monitor_fallback_init(); @@ -218,10 +219,10 @@ void _eio_monitor_send(Eio_Monitor *monitor, const char *filename, int event_code) { Eio_Monitor_Event *ev; - +fprintf(stderr, "%s:%u EVENT %d\n", __FILE__, __LINE__, event_code); if (monitor->delete_me) return; - +fprintf(stderr, "%s:%u EVENT %d\n", __FILE__, __LINE__, event_code); INF("Event '%s' for monitored path '%s'.", _eio_naming_event(event_code), filename); diff --git a/src/lib/eio/eio_monitor_inotify.c b/src/lib/eio/eio_monitor_inotify.c index f3a83be5b7..a9cca1f7f7 100644 --- a/src/lib/eio/eio_monitor_inotify.c +++ b/src/lib/eio/eio_monitor_inotify.c @@ -91,10 +91,10 @@ _eio_inotify_events(Eio_Monitor_Backend *backend, const char *file, int mask) unsigned int tmp_length; unsigned int i; Eina_Bool is_dir; - +fprintf(stderr, "%s:%u\n", __FILE__, __LINE__); if (backend->parent->delete_me) return; - +fprintf(stderr, "%s:%u\n", __FILE__, __LINE__); length = file ? strlen(file) : 0; tmp_length = eina_stringshare_strlen(backend->parent->path) + length + 2; tmp = alloca(sizeof (char) * tmp_length); @@ -106,16 +106,16 @@ _eio_inotify_events(Eio_Monitor_Backend *backend, const char *file, int mask) is_dir = !!(mask & IN_ISDIR); - +fprintf(stderr, "%s:%u\n", __FILE__, __LINE__); for (i = 0; i < sizeof (match) / sizeof (Eio_Inotify_Table); ++i) if (match[i].mask & mask) - { + {fprintf(stderr, "%s:%u\n", __FILE__, __LINE__); _eio_monitor_send(backend->parent, tmp, is_dir ? *match[i].ev_dir_code : *match[i].ev_file_code); } /* special case for IN_IGNORED */ if (mask & IN_IGNORED) - { + {fprintf(stderr, "%s:%u\n", __FILE__, __LINE__); _eio_monitor_rename(backend->parent, tmp); } } @@ -143,9 +143,10 @@ _eio_inotify_handler(void *data EINA_UNUSED, Ecore_Fd_Handler *fdh) // No need to waste time looking up for just destroyed handler if ((event->mask & IN_IGNORED)) continue ; - +fprintf(stderr, "%s:%u\n", __FILE__, __LINE__); backend = eina_hash_find(_inotify_monitors, &event->wd); if (!backend) continue ; + fprintf(stderr, "%s:%u\n", __FILE__, __LINE__); if (!backend->parent) continue ; _eio_inotify_events(backend, (event->len ? event->name : NULL), event->mask); @@ -196,11 +197,17 @@ void eio_monitor_backend_init(void) if (fd < 0) return; - eina_file_close_on_exec(fd, EINA_TRUE); + if (!eina_file_close_on_exec(fd, EINA_TRUE)) + { + ERR("CLOEXEC failed!"); + close(fd); + return; + } _inotify_fdh = ecore_main_fd_handler_add(fd, ECORE_FD_READ, _eio_inotify_handler, NULL, NULL, NULL); if (!_inotify_fdh) { + ERR("FDH creation failed!"); close(fd); return; } @@ -262,6 +269,7 @@ void eio_monitor_backend_add(Eio_Monitor *monitor) backend->hwnd = inotify_add_watch(ecore_main_fd_handler_fd_get(_inotify_fdh), monitor->path, mask); if (backend->hwnd < 0) { + ERR("ERROR adding inotify watch: %s", strerror(errno)); if (errno != EACCES) eio_monitor_fallback_add(monitor); diff --git a/src/tests/efl_check.h b/src/tests/efl_check.h index 0e655541ab..3417a381cc 100644 --- a/src/tests/efl_check.h +++ b/src/tests/efl_check.h @@ -266,7 +266,7 @@ _efl_suite_build_and_run(int argc, const char **argv, const char *suite_name, co sr = srunner_create(s); do_fork = _efl_test_fork_has(sr); if (do_fork) - can_fork = !!etc[1].test_case /* can't parallelize 1 test */; + can_fork = strcmp(suite_name, "Eio") && !!etc[1].test_case /* can't parallelize 1 test */; for (i = 0; etc[i].test_case; ++i) { diff --git a/src/tests/eio/eio_suite.c b/src/tests/eio/eio_suite.c index 5b59c5c4dc..1f0d417e68 100644 --- a/src/tests/eio/eio_suite.c +++ b/src/tests/eio/eio_suite.c @@ -37,6 +37,7 @@ static const Efl_Test_Case etc[] = { SUITE_INIT(eio) { ck_assert_int_eq(eio_init(), 1); +eina_log_level_set(4); } SUITE_SHUTDOWN(eio) diff --git a/src/tests/eio/eio_test_monitor.c b/src/tests/eio/eio_test_monitor.c index 26b469fe96..f8eaf8d838 100644 --- a/src/tests/eio/eio_test_monitor.c +++ b/src/tests/eio/eio_test_monitor.c @@ -14,8 +14,8 @@ /////////////////timeout function -#define TEST_TIMEOUT_SEC 5 -#define TEST_OPERATION_DELAY 1 +#define TEST_TIMEOUT_SEC 0.5 +#define TEST_OPERATION_DELAY 0.05 static Ecore_Timer *test_timeout_timer; @@ -485,7 +485,7 @@ static void _directory_self_deleted_cb(void *data, int type, void *event) EFL_START_TEST(eio_test_monitor_directory_directory_self_deleted_notify) { Eina_Tmpstr *dirname = _common_init(); - +fprintf(stderr, "START TEST eio_test_monitor_directory_directory_self_deleted_notify\n"); //monitor directory eio_monitor_add(dirname); ecore_event_handler_add(EIO_MONITOR_SELF_DELETED, (Ecore_Event_Handler_Cb)_directory_self_deleted_cb, dirname); @@ -504,7 +504,7 @@ EFL_START_TEST(eio_test_monitor_file_file_modified_notify) { Eina_Tmpstr *dirname = _common_init(); Eina_Stringshare *filename; - +fprintf(stderr, "START TEST eio_test_monitor_file_file_modified_notify\n"); filename = eina_stringshare_printf("%s/filecreated", dirname); _create_file((void*)filename); @@ -571,7 +571,7 @@ EFL_START_TEST(eio_test_monitor_file_file_self_deleted_notify) { Eina_Tmpstr *dirname = _common_init(); Eina_Stringshare *filename; - +fprintf(stderr, "START TEST eio_test_monitor_file_file_self_deleted_notify\n"); filename = eina_stringshare_printf("%s/eio_test_monitor_file_file_self_deleted_notify", dirname); _create_file((void*)filename); @@ -677,7 +677,7 @@ EFL_START_TEST(eio_test_monitor_two_files_in_same_directory) Eina_Tmpstr *dirname = _common_init(); Eina_Stringshare *filename; Eina_Stringshare *filename2; - +fprintf(stderr, "START TEST eio_test_monitor_two_files_in_same_directory\n"); filename = eina_stringshare_printf("%s/eio_test_monitor_two_files_in_same_directory_1", dirname); filename2 = eina_stringshare_printf("%s/eio_test_monitor_two_files_in_same_directory_2", dirname); _create_file((void*)filename); @@ -730,36 +730,9 @@ EFL_END_TEST void eio_test_monitor(TCase *tc) { - tcase_add_test(tc, eio_test_monitor_add_and_remove); - tcase_add_test(tc, eio_test_monitor_add_remove_add); - tcase_add_test(tc, eio_test_monitor_add_add_remove_remove); - - tcase_add_test(tc, eio_test_monitor_directory_file_created_notify); - tcase_add_test(tc, eio_test_monitor_directory_multi_file_created_notify); - tcase_add_test(tc, eio_test_monitor_directory_file_deleted_notify); - tcase_add_test(tc, eio_test_monitor_directory_file_modified_notify); -#if !defined(_WIN32) && !defined(__MACH__) - tcase_add_test(tc, eio_test_monitor_directory_file_closed_notify); -#endif - tcase_add_test(tc, eio_test_monitor_directory_directory_created_notify); - tcase_add_test(tc, eio_test_monitor_directory_directory_deleted_notify); - tcase_add_test(tc, eio_test_monitor_directory_directory_modified_notify); -#ifndef __MACH__ tcase_add_test(tc, eio_test_monitor_directory_directory_self_deleted_notify); -#endif tcase_add_test(tc, eio_test_monitor_file_file_modified_notify); - tcase_add_test(tc, eio_test_monitor_file_file_attrib_modified_notify); -#if !defined(_WIN32) && !defined(__MACH__) - tcase_add_test(tc, eio_test_monitor_file_file_closed_notify); -#endif -#ifndef __MACH__ tcase_add_test(tc, eio_test_monitor_file_file_self_deleted_notify); -#endif - - tcase_add_test(tc, eio_test_monitor_two_monitors_one_event); - tcase_add_test(tc, eio_test_monitor_two_monitors_one_removed_one_event); - tcase_add_test(tc, eio_test_monitor_two_monitors_one_removed_no_event); tcase_add_test(tc, eio_test_monitor_two_files_in_same_directory); - tcase_add_test(tc, eio_test_monitor_two_files_in_same_directory_one_removed); } |