summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tests/ecore/ecore_suite.c26
-rw-r--r--src/tests/ecore/ecore_suite.h3
-rw-r--r--src/tests/ecore/ecore_test_ecore_file.c4
3 files changed, 32 insertions, 1 deletions
diff --git a/src/tests/ecore/ecore_suite.c b/src/tests/ecore/ecore_suite.c
index 4db69812ed..0e67feafa7 100644
--- a/src/tests/ecore/ecore_suite.c
+++ b/src/tests/ecore/ecore_suite.c
@@ -35,13 +35,39 @@ static const Efl_Test_Case etc[] = {
{ NULL, NULL }
};
+static Ecore_Timer *timeout;
+int timeout_reached = 0;
+
+static Eina_Bool
+timeout_cb()
+{
+ const char *tcname = tcase_name();
+
+ timeout_reached = 1;
+
+ if (tcname && strstr(tcname, "download"))
+ {
+ fprintf(stderr, "test timeout reached: download failed, probably network issue. skipping\n");
+ ecore_main_loop_quit();
+ }
+ else
+ ck_abort_msg("test timeout reached!");
+ timeout = NULL;
+ return EINA_FALSE;
+}
+
SUITE_INIT(ecore)
{
+ timeout_reached = 0;
ck_assert_int_eq(ecore_init(), 1);
+ timeout = ecore_timer_add(5.0, timeout_cb, NULL);
+ ck_assert_msg(!!timeout, "timeout timer creation failed!");
}
SUITE_SHUTDOWN(ecore)
{
+ ecore_timer_del(timeout);
+ timeout = NULL;
ck_assert_int_eq(ecore_shutdown(), 0);
}
diff --git a/src/tests/ecore/ecore_suite.h b/src/tests/ecore/ecore_suite.h
index 5cd57de8e3..debc20337e 100644
--- a/src/tests/ecore/ecore_suite.h
+++ b/src/tests/ecore/ecore_suite.h
@@ -3,6 +3,9 @@
#include <check.h>
#include "../efl_check.h"
+
+extern int timeout_reached;
+
void ecore_test_ecore(TCase *tc);
void ecore_test_ecore_idle(TCase *tc);
void ecore_test_ecore_poller(TCase *tc);
diff --git a/src/tests/ecore/ecore_test_ecore_file.c b/src/tests/ecore/ecore_test_ecore_file.c
index 764d0073f9..fb23ffb15e 100644
--- a/src/tests/ecore/ecore_test_ecore_file.c
+++ b/src/tests/ecore/ecore_test_ecore_file.c
@@ -508,6 +508,7 @@ EFL_START_TEST(ecore_test_ecore_file_download)
fail_if(!job);
ecore_file_download_abort(job);
ecore_main_loop_begin();
+ if (timeout_reached) goto end;
res = ecore_file_remove(dest_name);
fail_if(res != EINA_TRUE);
@@ -519,10 +520,11 @@ EFL_START_TEST(ecore_test_ecore_file_download)
fail_if(res != EINA_TRUE);
fail_if(!job);
ecore_main_loop_begin();
+ if (timeout_reached) goto end;
fprintf(stderr, "Downloaded %lld bytes\n", ecore_file_size(dest_name));
res = ecore_file_exists(dest_name);
fail_if(res != EINA_TRUE);
-
+end:
res = ecore_file_recursive_rm(download_dir);
fail_if(res != EINA_TRUE);