cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a1bd7a74991fc5a618077df6f28494cb8453d6f5

commit a1bd7a74991fc5a618077df6f28494cb8453d6f5
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Wed May 4 15:42:23 2016 -0700

    ecore: add timeout promise test.
---
 src/tests/ecore/ecore_test_timer.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/src/tests/ecore/ecore_test_timer.c 
b/src/tests/ecore/ecore_test_timer.c
index ab85893..bb76968 100644
--- a/src/tests/ecore/ecore_test_timer.c
+++ b/src/tests/ecore/ecore_test_timer.c
@@ -4,6 +4,8 @@
 
 #include <Ecore.h>
 
+#include <math.h>
+
 #include "ecore_suite.h"
 
 #define TIMEOUT_1 0.01 // interval for timer1
@@ -173,7 +175,41 @@ START_TEST(ecore_test_timers)
 }
 END_TEST
 
+static void
+_ecore_promise_quit(void *data, void *value)
+{
+   Eina_Bool *bob = data;
+   double *start = *(double**)value;
+   double delta = fabs(ecore_loop_time_get() - *start);
+
+   fail_if(fabs(delta - 0.2) > 0.01);
+
+   *bob = EINA_TRUE;
+   ecore_main_loop_quit();
+}
+
+START_TEST(ecore_test_timeout)
+{
+   Eina_Promise *timeout = NULL;
+   Eina_Bool bob = EINA_FALSE;
+   double start;
+
+   ecore_init();
+
+   start = ecore_time_get();
+   efl_loop_timeout(ecore_main_loop_get(), &timeout, 0.2, &start);
+   eina_promise_then(timeout, &_ecore_promise_quit, NULL, &bob);
+
+   ecore_main_loop_begin();
+
+   fail_if(bob != EINA_TRUE);
+
+   ecore_shutdown();
+}
+END_TEST
+
 void ecore_test_timer(TCase *tc)
 {
   tcase_add_test(tc, ecore_test_timers);
+  tcase_add_test(tc, ecore_test_timeout);
 }

-- 


Reply via email to