diff options
Diffstat (limited to 'src/devices/bluetooth/tests')
| -rw-r--r-- | src/devices/bluetooth/tests/nm-bt-test.c | 275 |
1 files changed, 139 insertions, 136 deletions
diff --git a/src/devices/bluetooth/tests/nm-bt-test.c b/src/devices/bluetooth/tests/nm-bt-test.c index 02cfd228..a57bb076 100644 --- a/src/devices/bluetooth/tests/nm-bt-test.c +++ b/src/devices/bluetooth/tests/nm-bt-test.c @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-2.1+ +/* SPDX-License-Identifier: LGPL-2.1+ */ #include "nm-default.h" @@ -11,25 +11,27 @@ /*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_BT -#define _NMLOG(level, ...) \ - nm_log ((level), _NMLOG_DOMAIN, \ - NULL, NULL, \ - "bt%s%s%s: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ - NM_PRINT_FMT_QUOTED (gl.argv_cmd, "[", gl.argv_cmd, "]", "") \ - _NM_UTILS_MACRO_REST (__VA_ARGS__)) +#define _NMLOG(level, ...) \ + nm_log((level), \ + _NMLOG_DOMAIN, \ + NULL, \ + NULL, \ + "bt%s%s%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + NM_PRINT_FMT_QUOTED(gl.argv_cmd, "[", gl.argv_cmd, "]", "") \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)) /*****************************************************************************/ struct { - int argc; - const char *const*argv; - const char *argv_cmd; - GMainLoop *loop; + int argc; + const char *const *argv; + const char * argv_cmd; + GMainLoop * loop; } gl; typedef struct _MainCmdInfo { - const char *name; - int (*main_func) (const struct _MainCmdInfo *main_cmd_info); + const char *name; + int (*main_func)(const struct _MainCmdInfo *main_cmd_info); } MainCmdInfo; /*****************************************************************************/ @@ -37,184 +39,185 @@ typedef struct _MainCmdInfo { #if WITH_BLUEZ5_DUN typedef struct { - NMBluez5DunContext *dun_context; - GCancellable *cancellable; - guint timeout_id; - guint sig_term_id; - guint sig_int_id; + NMBluez5DunContext *dun_context; + GCancellable * cancellable; + guint timeout_id; + guint sig_term_id; + guint sig_int_id; } DunConnectData; static void -_dun_connect_cb (NMBluez5DunContext *context, - const char *rfcomm_dev, - GError *error, - gpointer user_data) +_dun_connect_cb(NMBluez5DunContext *context, + const char * rfcomm_dev, + GError * error, + gpointer user_data) { - DunConnectData *dun_connect_data = user_data; + DunConnectData *dun_connect_data = user_data; - g_assert (dun_connect_data); - g_assert (!dun_connect_data->dun_context); - g_assert ((!!error) != (!!rfcomm_dev)); + g_assert(dun_connect_data); + g_assert(!dun_connect_data->dun_context); + g_assert((!!error) != (!!rfcomm_dev)); - if (rfcomm_dev && !context) { - _LOGI ("dun-connect notifies path \"%s\". Wait longer...", rfcomm_dev); - return; - } + if (rfcomm_dev && !context) { + _LOGI("dun-connect notifies path \"%s\". Wait longer...", rfcomm_dev); + return; + } - if (rfcomm_dev) { - g_assert (context); - _LOGI ("dun-connect completed with path \"%s\"", rfcomm_dev); - } else { - g_assert (!context); - _LOGI ("dun-connect failed with error: %s", error->message); - } + if (rfcomm_dev) { + g_assert(context); + _LOGI("dun-connect completed with path \"%s\"", rfcomm_dev); + } else { + g_assert(!context); + _LOGI("dun-connect failed with error: %s", error->message); + } - dun_connect_data->dun_context = context; + dun_connect_data->dun_context = context; - g_main_loop_quit (gl.loop); + g_main_loop_quit(gl.loop); } static void -_dun_notify_tty_hangup_cb (NMBluez5DunContext *context, - gpointer user_data) +_dun_notify_tty_hangup_cb(NMBluez5DunContext *context, gpointer user_data) { - _LOGI ("dun-connect: notified TTY hangup"); + _LOGI("dun-connect: notified TTY hangup"); } static gboolean -_timeout_cb (gpointer user_data) +_timeout_cb(gpointer user_data) { - DunConnectData *dun_connect_data = user_data; + DunConnectData *dun_connect_data = user_data; - _LOGI ("timeout"); - dun_connect_data->timeout_id = 0; - if (dun_connect_data->cancellable) - g_cancellable_cancel (dun_connect_data->cancellable); - return G_SOURCE_REMOVE; + _LOGI("timeout"); + dun_connect_data->timeout_id = 0; + if (dun_connect_data->cancellable) + g_cancellable_cancel(dun_connect_data->cancellable); + return G_SOURCE_REMOVE; } static gboolean -_sig_xxx_cb (DunConnectData *dun_connect_data, int sigid) +_sig_xxx_cb(DunConnectData *dun_connect_data, int sigid) { - _LOGI ("signal %s received", sigid == SIGTERM ? "SIGTERM" : "SIGINT"); - g_main_loop_quit (gl.loop); - return G_SOURCE_CONTINUE; + _LOGI("signal %s received", sigid == SIGTERM ? "SIGTERM" : "SIGINT"); + g_main_loop_quit(gl.loop); + return G_SOURCE_CONTINUE; } static gboolean -_sig_term_cb (gpointer user_data) +_sig_term_cb(gpointer user_data) { - return _sig_xxx_cb (user_data, SIGTERM); + return _sig_xxx_cb(user_data, SIGTERM); } static gboolean -_sig_int_cb (gpointer user_data) +_sig_int_cb(gpointer user_data) { - return _sig_xxx_cb (user_data, SIGINT); + return _sig_xxx_cb(user_data, SIGINT); } #endif static int -do_dun_connect (const MainCmdInfo *main_cmd_info) +do_dun_connect(const MainCmdInfo *main_cmd_info) { #if WITH_BLUEZ5_DUN - gs_unref_object GCancellable *cancellable = NULL; - gs_free_error GError *error = NULL; - const char *adapter; - const char *remote; - DunConnectData dun_connect_data = { }; + gs_unref_object GCancellable *cancellable = NULL; + gs_free_error GError *error = NULL; + const char * adapter; + const char * remote; + DunConnectData dun_connect_data = {}; - if (gl.argc < 4) { - _LOGE ("missing arguments \"adapter\" and \"remote\""); - return -1; - } + if (gl.argc < 4) { + _LOGE("missing arguments \"adapter\" and \"remote\""); + return -1; + } - adapter = gl.argv[2]; - remote = gl.argv[3]; + adapter = gl.argv[2]; + remote = gl.argv[3]; - cancellable = g_cancellable_new (); - dun_connect_data.cancellable = cancellable; + cancellable = g_cancellable_new(); + dun_connect_data.cancellable = cancellable; - if (!nm_bluez5_dun_connect (adapter, - remote, - cancellable, - _dun_connect_cb, - &dun_connect_data, - _dun_notify_tty_hangup_cb, - &dun_connect_data, - &error)) { - _LOGE ("connect failed to start: %s", error->message); - return -1; - } + if (!nm_bluez5_dun_connect(adapter, + remote, + cancellable, + _dun_connect_cb, + &dun_connect_data, + _dun_notify_tty_hangup_cb, + &dun_connect_data, + &error)) { + _LOGE("connect failed to start: %s", error->message); + return -1; + } - dun_connect_data.timeout_id = g_timeout_add (60000, _timeout_cb, &dun_connect_data); + dun_connect_data.timeout_id = g_timeout_add(60000, _timeout_cb, &dun_connect_data); - g_main_loop_run (gl.loop); + g_main_loop_run(gl.loop); - nm_clear_g_source (&dun_connect_data.timeout_id); + nm_clear_g_source(&dun_connect_data.timeout_id); - if (dun_connect_data.dun_context) { + if (dun_connect_data.dun_context) { + dun_connect_data.sig_term_id = g_unix_signal_add(SIGTERM, _sig_term_cb, &dun_connect_data); + dun_connect_data.sig_int_id = g_unix_signal_add(SIGINT, _sig_int_cb, &dun_connect_data); - dun_connect_data.sig_term_id = g_unix_signal_add (SIGTERM, _sig_term_cb, &dun_connect_data); - dun_connect_data.sig_int_id = g_unix_signal_add (SIGINT, _sig_int_cb, &dun_connect_data); + g_main_loop_run(gl.loop); - g_main_loop_run (gl.loop); + nm_clear_g_source(&dun_connect_data.sig_term_id); + nm_clear_g_source(&dun_connect_data.sig_int_id); - nm_clear_g_source (&dun_connect_data.sig_term_id); - nm_clear_g_source (&dun_connect_data.sig_int_id); + nm_bluez5_dun_disconnect(g_steal_pointer(&dun_connect_data.dun_context)); + } - nm_bluez5_dun_disconnect (g_steal_pointer (&dun_connect_data.dun_context)); - } - - return 0; + return 0; #else - _LOGE ("compiled without bluetooth DUN support"); - return 1; + _LOGE("compiled without bluetooth DUN support"); + return 1; #endif } /*****************************************************************************/ -NMTST_DEFINE (); +NMTST_DEFINE(); int -main (int argc, char **argv) +main(int argc, char **argv) { - static const MainCmdInfo main_cmd_infos[] = { - { .name = "dun-connect", .main_func = do_dun_connect, }, - }; - int exit_code = 0; - guint i; - - if (!g_getenv ("G_MESSAGES_DEBUG")) - g_setenv ("G_MESSAGES_DEBUG", "all", TRUE); - - nmtst_init_with_logging (&argc, &argv, "DEBUG", "ALL"); - - nm_logging_init (NULL, TRUE); - - gl.argv = (const char *const*) argv; - gl.argc = argc; - gl.loop = g_main_loop_new (NULL, FALSE); - - _LOGI ("bluetooth test util start"); - - gl.argv_cmd = argc >= 2 ? argv[1] : NULL; - - for (i = 0; i < G_N_ELEMENTS (main_cmd_infos); i++) { - if (nm_streq0 (main_cmd_infos[i].name, gl.argv_cmd)) { - _LOGD ("start \"%s\"", gl.argv_cmd); - exit_code = main_cmd_infos[i].main_func (&main_cmd_infos[i]); - _LOGD ("completed with %d", exit_code); - break; - } - } - if (gl.argv_cmd && i >= G_N_ELEMENTS (main_cmd_infos)) { - nm_log_err (LOGD_BT, "invalid command \"%s\"", gl.argv_cmd); - exit_code = -1; - } - - nm_clear_pointer (&gl.loop, g_main_loop_unref); - - return exit_code; + static const MainCmdInfo main_cmd_infos[] = { + { + .name = "dun-connect", + .main_func = do_dun_connect, + }, + }; + int exit_code = 0; + guint i; + + if (!g_getenv("G_MESSAGES_DEBUG")) + g_setenv("G_MESSAGES_DEBUG", "all", TRUE); + + nmtst_init_with_logging(&argc, &argv, "DEBUG", "ALL"); + + nm_logging_init(NULL, TRUE); + + gl.argv = (const char *const *) argv; + gl.argc = argc; + gl.loop = g_main_loop_new(NULL, FALSE); + + _LOGI("bluetooth test util start"); + + gl.argv_cmd = argc >= 2 ? argv[1] : NULL; + + for (i = 0; i < G_N_ELEMENTS(main_cmd_infos); i++) { + if (nm_streq0(main_cmd_infos[i].name, gl.argv_cmd)) { + _LOGD("start \"%s\"", gl.argv_cmd); + exit_code = main_cmd_infos[i].main_func(&main_cmd_infos[i]); + _LOGD("completed with %d", exit_code); + break; + } + } + if (gl.argv_cmd && i >= G_N_ELEMENTS(main_cmd_infos)) { + nm_log_err(LOGD_BT, "invalid command \"%s\"", gl.argv_cmd); + exit_code = -1; + } + + nm_clear_pointer(&gl.loop, g_main_loop_unref); + + return exit_code; } |