diff --git a/src/shared/tester.c b/src/shared/tester.c
index af33a79..c07cbc1 100644
--- a/src/shared/tester.c
+++ b/src/shared/tester.c
#include "src/shared/util.h"
#include "src/shared/tester.h"
#include "src/shared/log.h"
+#include "src/shared/timeout.h"
#define COLOR_OFF "\x1B[0m"
#define COLOR_BLACK "\x1B[0;30m"
struct test_case *test = data;
if (test->timeout_id > 0)
- g_source_remove(test->timeout_id);
+ timeout_remove(test->timeout_id);
if (test->teardown_id > 0)
g_source_remove(test->teardown_id);
return FALSE;
}
-static gboolean test_timeout(gpointer user_data)
+static bool test_timeout(gpointer user_data)
{
struct test_case *test = user_data;
test->start_time = g_timer_elapsed(test_timer, NULL);
if (test->timeout > 0)
- test->timeout_id = g_timeout_add_seconds(test->timeout,
- test_timeout, test);
+ test->timeout_id = timeout_add_seconds(test->timeout,
+ test_timeout, test,
+ NULL);
test->stage = TEST_STAGE_PRE_SETUP;
return;
if (test->timeout_id > 0) {
- g_source_remove(test->timeout_id);
+ timeout_remove(test->timeout_id);
test->timeout_id = 0;
}
test->stage = TEST_STAGE_POST_TEARDOWN;
if (test->timeout_id > 0) {
- g_source_remove(test->timeout_id);
+ timeout_remove(test->timeout_id);
test->timeout_id = 0;
}
return;
if (test->timeout_id > 0) {
- g_source_remove(test->timeout_id);
+ timeout_remove(test->timeout_id);
test->timeout_id = 0;
}
diff --git a/src/shared/timeout-ell.c b/src/shared/timeout-ell.c
index 0233640..6416d85 100644
--- a/src/shared/timeout-ell.c
+++ b/src/shared/timeout-ell.c
if (to)
l_timeout_remove(to);
}
+
+unsigned int timeout_add_seconds(unsigned int timeout, timeout_func_t func,
+ void *user_data, timeout_destroy_func_t destroy)
+{
+ return timeout_add(timeout * 1000, func, user_data, destroy);
+}
diff --git a/src/shared/timeout-glib.c b/src/shared/timeout-glib.c
index 8bdb7a6..3268d48 100644
--- a/src/shared/timeout-glib.c
+++ b/src/shared/timeout-glib.c
if (source)
g_source_destroy(source);
}
+
+unsigned int timeout_add_seconds(unsigned int timeout, timeout_func_t func,
+ void *user_data, timeout_destroy_func_t destroy)
+{
+ struct timeout_data *data;
+ guint id;
+
+ data = g_try_new0(struct timeout_data, 1);
+ if (!data)
+ return 0;
+
+ data->func = func;
+ data->destroy = destroy;
+ data->user_data = user_data;
+
+ if (!timeout)
+ id = g_idle_add_full(G_PRIORITY_DEFAULT_IDLE, timeout_callback,
+ data, timeout_destroy);
+ else
+ id = g_timeout_add_seconds_full(G_PRIORITY_DEFAULT, timeout,
+ timeout_callback, data,
+ timeout_destroy);
+ if (!id)
+ g_free(data);
+
+ return id;
+}
diff --git a/src/shared/timeout-mainloop.c b/src/shared/timeout-mainloop.c
index 5ffa65c..9be803c 100644
--- a/src/shared/timeout-mainloop.c
+++ b/src/shared/timeout-mainloop.c
mainloop_remove_timeout((int) id);
}
+
+unsigned int timeout_add_seconds(unsigned int timeout, timeout_func_t func,
+ void *user_data, timeout_destroy_func_t destroy)
+{
+ return timeout_add(timeout * 1000, func, user_data, destroy);
+}
diff --git a/src/shared/timeout.h b/src/shared/timeout.h
index 7e22345..0945c33 100644
--- a/src/shared/timeout.h
+++ b/src/shared/timeout.h
unsigned int timeout_add(unsigned int timeout, timeout_func_t func,
void *user_data, timeout_destroy_func_t destroy);
void timeout_remove(unsigned int id);
+
+unsigned int timeout_add_seconds(unsigned int timeout, timeout_func_t func,
+ void *user_data, timeout_destroy_func_t destroy);