summaryrefslogtreecommitdiff
path: root/unit/test-uhid.c
diff options
context:
space:
mode:
authorGowtham Anandha Babu <gowtham.ab@samsung.com>2015-10-01 20:02:23 +0530
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-10-02 10:19:47 +0300
commit62cf3d827e80b773ed5a248b9c609247acbaa8c2 (patch)
treeb09939e7ad5ccd8c2cfba1a6185d6e0bb4702e6c /unit/test-uhid.c
parente56a21ce9f9117339404d5cc33cba5c162ac9149 (diff)
downloadbluez-62cf3d827e80b773ed5a248b9c609247acbaa8c2.tar.gz
unit/test-uhid: Use tester framework
Diffstat (limited to 'unit/test-uhid.c')
-rw-r--r--unit/test-uhid.c62
1 files changed, 26 insertions, 36 deletions
diff --git a/unit/test-uhid.c b/unit/test-uhid.c
index b48e0faa1..320cd54d4 100644
--- a/unit/test-uhid.c
+++ b/unit/test-uhid.c
@@ -38,6 +38,8 @@
#include "src/shared/uhid.h"
#include "src/shared/util.h"
+#include "src/shared/tester.h"
+
struct test_pdu {
bool valid;
const uint8_t *data;
@@ -50,7 +52,6 @@ struct test_data {
};
struct context {
- GMainLoop *main_loop;
struct bt_uhid *uhid;
guint source;
guint process;
@@ -74,14 +75,14 @@ struct context {
static struct test_data data; \
data.test_name = g_strdup(name); \
data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
- g_test_add_data_func(name, &data, function); \
+ tester_add(name, &data, NULL, function, NULL); \
} while (0)
static void test_debug(const char *str, void *user_data)
{
const char *prefix = user_data;
- g_print("%s%s\n", prefix, str);
+ tester_debug("%s%s\n", prefix, str);
}
static void test_free(gconstpointer user_data)
@@ -92,14 +93,29 @@ static void test_free(gconstpointer user_data)
g_free(data->pdu_list);
}
+static void destroy_context(struct context *context)
+{
+ if (context->source > 0)
+ g_source_remove(context->source);
+
+ bt_uhid_unref(context->uhid);
+
+ test_free(context->data);
+ g_free(context);
+}
+
static gboolean context_quit(gpointer user_data)
{
struct context *context = user_data;
+ if (context == NULL)
+ return FALSE;
+
if (context->process > 0)
g_source_remove(context->process);
- g_main_loop_quit(context->main_loop);
+ destroy_context(context);
+ tester_test_passed();
return FALSE;
}
@@ -114,8 +130,8 @@ static gboolean send_pdu(gpointer user_data)
len = write(context->fd, pdu->data, pdu->size);
- if (g_test_verbose())
- util_hexdump('<', pdu->data, len, test_debug, "uHID: ");
+
+ util_hexdump('<', pdu->data, len, test_debug, "uHID: ");
g_assert_cmpint(len, ==, pdu->size);
@@ -156,8 +172,7 @@ static gboolean test_handler(GIOChannel *channel, GIOCondition cond,
g_assert(len > 0);
- if (g_test_verbose())
- util_hexdump('>', buf, len, test_debug, "uHID: ");
+ util_hexdump('>', buf, len, test_debug, "uHID: ");
g_assert_cmpint(len, ==, pdu->size);
@@ -174,9 +189,6 @@ static struct context *create_context(gconstpointer data)
GIOChannel *channel;
int err, sv[2];
- context->main_loop = g_main_loop_new(NULL, FALSE);
- g_assert(context->main_loop);
-
err = socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_CLOEXEC, 0, sv);
g_assert(err == 0);
@@ -202,26 +214,6 @@ static struct context *create_context(gconstpointer data)
return context;
}
-static void destroy_context(struct context *context)
-{
- if (context->source > 0)
- g_source_remove(context->source);
-
- bt_uhid_unref(context->uhid);
-
- g_main_loop_unref(context->main_loop);
-
- test_free(context->data);
- g_free(context);
-}
-
-static void execute_context(struct context *context)
-{
- g_main_loop_run(context->main_loop);
-
- destroy_context(context);
-}
-
static const struct uhid_event ev_create = {
.type = UHID_CREATE,
};
@@ -263,7 +255,7 @@ static void test_client(gconstpointer data)
if (g_str_equal(context->data->test_name, "/uhid/command/input"))
bt_uhid_send(context->uhid, &ev_input);
- execute_context(context);
+ context_quit(context);
}
static void handle_output(struct uhid_event *ev, void *user_data)
@@ -288,13 +280,11 @@ static void test_server(gconstpointer data)
bt_uhid_register(context->uhid, UHID_FEATURE, handle_feature, context);
g_idle_add(send_pdu, context);
-
- execute_context(context);
}
int main(int argc, char *argv[])
{
- g_test_init(&argc, &argv, NULL);
+ tester_init(&argc, &argv);
define_test("/uhid/command/create", test_client, event(&ev_create));
define_test("/uhid/command/destroy", test_client, event(&ev_destroy));
@@ -305,5 +295,5 @@ int main(int argc, char *argv[])
define_test("/uhid/event/output", test_server, event(&ev_output));
define_test("/uhid/event/feature", test_server, event(&ev_feature));
- return g_test_run();
+ return tester_run();
}