Thank you, Mr Choi.

On 07/17/2014 04:37 PM, ryuan Choi wrote:
> I updated like you suggested.
>
> It's not critical to me but I agree that it might be also usefull.
>
> Thanks,
> Ryuan Choi
>
>
> 2014-07-17 13:30 GMT+09:00 Daniel Zaoui <daniel.za...@samsung.com
> <mailto:daniel.za...@samsung.com>>:
>
>     Hi Ryuan,
>
>     Thank you for this patch.
>     Don't you think it would be better if the timeout could be chosen
>     by the
>     caller itself?
>
>     D2, alias JackDanielZ
>
>     On 07/16/2014 06:36 PM, Daniel Juyung Seo wrote:
>     > Oh.. this must be useful :)
>     >
>     > Thanks.
>     >
>     > Daniel Juyung Seo (SeoZ)
>     >
>     >
>     > On Wed, Jul 16, 2014 at 11:32 PM, Ryuan Choi
>     <ryuan.c...@gmail.com <mailto:ryuan.c...@gmail.com>> wrote:
>     >
>     >> ryuan pushed a commit to branch master.
>     >>
>     >>
>     >>
>     
> http://git.enlightenment.org/core/elementary.git/commit/?id=bbb916375d99e65b8083a037323d88acbbcdbec5
>     >>
>     >> commit bbb916375d99e65b8083a037323d88acbbcdbec5
>     >> Author: Ryuan Choi <ryuan.c...@gmail.com
>     <mailto:ryuan.c...@gmail.com>>
>     >> Date:   Wed Jul 16 23:17:31 2014 +0900
>     >>
>     >>     tests: Add elm_test_helper_wait_flag to avoid infinite loop
>     >>
>     >>     Test of elm_fileselector_selected and future tests may have
>     >> conditional loop
>     >>     which some flag.
>     >>     This patch adds elm_test_helper_wait_flag, simple wrapper
>     of the loop
>     >> with timer
>     >>     in order to exit the loop when expected callbacks are not
>     called.
>     >> ---
>     >>  src/tests/Makefile.am             |  1 +
>     >>  src/tests/elm_suite.h             |  1 +
>     >>  src/tests/elm_test_fileselector.c |  6 ++++--
>     >>  src/tests/elm_test_helper.c       | 41
>     >> +++++++++++++++++++++++++++++++++++++++
>     >>  src/tests/elm_test_helper.h       |  8 ++++++++
>     >>  5 files changed, 55 insertions(+), 2 deletions(-)
>     >>
>     >> diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
>     >> index 11dcd87..12fc454 100644
>     >> --- a/src/tests/Makefile.am
>     >> +++ b/src/tests/Makefile.am
>     >> @@ -6,6 +6,7 @@ TESTS = elm_suite
>     >>  check_PROGRAMS = elm_suite
>     >>  elm_suite_SOURCES = \
>     >>         elm_suite.c \
>     >> +       elm_test_helper.c \
>     >>         elm_test_atspi.c \
>     >>         elm_test_check.c \
>     >>         elm_test_colorselector.c \
>     >> diff --git a/src/tests/elm_suite.h b/src/tests/elm_suite.h
>     >> index 7918a4e..1a19179 100644
>     >> --- a/src/tests/elm_suite.h
>     >> +++ b/src/tests/elm_suite.h
>     >> @@ -2,6 +2,7 @@
>     >>  #define _ELM_SUITE_H
>     >>
>     >>  #include <check.h>
>     >> +#include "elm_test_helper.h"
>     >>
>     >>  void elm_test_init(TCase *tc);
>     >>  void elm_test_check(TCase *tc);
>     >> diff --git a/src/tests/elm_test_fileselector.c
>     >> b/src/tests/elm_test_fileselector.c
>     >> index e5dd067..a204917 100644
>     >> --- a/src/tests/elm_test_fileselector.c
>     >> +++ b/src/tests/elm_test_fileselector.c
>     >> @@ -69,12 +69,14 @@ START_TEST (elm_fileselector_selected)
>     >>
>     >>     selected = EINA_FALSE;
>     >>     ck_assert(elm_fileselector_selected_set(fileselector, path));
>     >> -   while (!selected) ecore_main_loop_iterate();
>     >> +   ck_assert(elm_test_helper_wait_flag(&selected));
>     >> +
>     >>    
>     ck_assert_str_eq(elm_fileselector_selected_get(fileselector), path);
>     >>
>     >>     selected = EINA_FALSE;
>     >>     ck_assert(elm_fileselector_selected_set(fileselector, exist));
>     >> -   while (!selected) ecore_main_loop_iterate();
>     >> +   ck_assert(elm_test_helper_wait_flag(&selected));
>     >> +
>     >>    
>     ck_assert_str_eq(elm_fileselector_selected_get(fileselector), exist);
>     >>
>     >>     eina_stringshare_del(exist);
>     >> diff --git a/src/tests/elm_test_helper.c
>     b/src/tests/elm_test_helper.c
>     >> new file mode 100644
>     >> index 0000000..453e888
>     >> --- /dev/null
>     >> +++ b/src/tests/elm_test_helper.c
>     >> @@ -0,0 +1,41 @@
>     >> +#ifdef HAVE_CONFIG_H
>     >> +# include "elementary_config.h"
>     >> +#endif
>     >> +
>     >> +#include <Ecore.h>
>     >> +#include "elm_suite.h"
>     >> +
>     >> +const double timeout = 10;
>     >> +
>     >> +typedef struct _Callback_Data
>     >> +{
>     >> +   Ecore_Timer *timer;
>     >> +   Eina_Bool did_timeout;
>     >> +} Callback_Data;
>     >> +
>     >> +static Eina_Bool
>     >> +timer_expired_cb(void *user_data)
>     >> +{
>     >> +   Callback_Data *data = user_data;
>     >> +   data->did_timeout = EINA_TRUE;
>     >> +   data->timer = NULL;
>     >> +
>     >> +   return ECORE_CALLBACK_CANCEL;
>     >> +}
>     >> +
>     >> +Eina_Bool
>     >> +elm_test_helper_wait_flag(Eina_Bool *done)
>     >> +{
>     >> +   Callback_Data data;
>     >> +
>     >> +   data.did_timeout = EINA_FALSE;
>     >> +   data.timer = ecore_timer_add(timeout, timer_expired_cb, &data);
>     >> +
>     >> +   while (*done == EINA_FALSE && data.did_timeout == EINA_FALSE)
>     >> +     ecore_main_loop_iterate();
>     >> +
>     >> +   if (data.timer)
>     >> +     ecore_timer_del(data.timer);
>     >> +
>     >> +   return !data.did_timeout;
>     >> +}
>     >> diff --git a/src/tests/elm_test_helper.h
>     b/src/tests/elm_test_helper.h
>     >> new file mode 100644
>     >> index 0000000..62974f1
>     >> --- /dev/null
>     >> +++ b/src/tests/elm_test_helper.h
>     >> @@ -0,0 +1,8 @@
>     >> +#ifndef _ELM_TEST_HELPER_H
>     >> +#define _ELM_TEST_HELPER_H
>     >> +
>     >> +#include <Eina.h>
>     >> +
>     >> +Eina_Bool elm_test_helper_wait_flag(Eina_Bool *done);
>     >> +
>     >> +#endif /* _ELM_TEST_HELPER_H */
>     >>
>     >> --
>     >>
>     >>
>     >>
>     >
>     
> ------------------------------------------------------------------------------
>     > Want fast and easy access to all the code in your enterprise?
>     Index and
>     > search up to 200,000 lines of code with a free copy of Black Duck
>     > Code Sight - the same software that powers the world's largest code
>     > search on Ohloh, the Black Duck Open Hub! Try it now.
>     > http://p.sf.net/sfu/bds
>     > _______________________________________________
>     > enlightenment-devel mailing list
>     > enlightenment-devel@lists.sourceforge.net
>     <mailto:enlightenment-devel@lists.sourceforge.net>
>     > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>     >
>
>


------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to