mirror of git://git.sysmocom.de/ofono
stktest: Templatize GetInkey related agent methods
This commit is contained in:
parent
43a037992a
commit
1e739a0405
121
tools/stktest.c
121
tools/stktest.c
|
@ -65,9 +65,7 @@ enum test_result {
|
||||||
typedef DBusMessage *(*display_text_cb_t)(DBusMessage *msg, const char *text,
|
typedef DBusMessage *(*display_text_cb_t)(DBusMessage *msg, const char *text,
|
||||||
unsigned char icon_id,
|
unsigned char icon_id,
|
||||||
gboolean urgent);
|
gboolean urgent);
|
||||||
typedef DBusMessage *(*request_digit_cb_t)(DBusMessage *msg, const char *alpha,
|
typedef DBusMessage *(*get_inkey_cb_t)(DBusMessage *msg, const char *alpha,
|
||||||
unsigned char icon_id);
|
|
||||||
typedef DBusMessage *(*request_key_cb_t)(DBusMessage *msg, const char *alpha,
|
|
||||||
unsigned char icon_id);
|
unsigned char icon_id);
|
||||||
typedef void (*terminal_response_func)(const unsigned char *pdu,
|
typedef void (*terminal_response_func)(const unsigned char *pdu,
|
||||||
unsigned int len);
|
unsigned int len);
|
||||||
|
@ -255,83 +253,48 @@ static DBusMessage *agent_display_text(DBusConnection *conn, DBusMessage *msg,
|
||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
static DBusMessage *agent_request_digit(DBusConnection *conn, DBusMessage *msg,
|
#define GET_INKEY_TEMPLATE(func, method_name) \
|
||||||
void *data)
|
static DBusMessage *func(DBusConnection *conn, DBusMessage *msg, \
|
||||||
{
|
void *data) \
|
||||||
const char *alpha;
|
{ \
|
||||||
unsigned char icon_id;
|
const char *alpha; \
|
||||||
struct test *test;
|
unsigned char icon_id; \
|
||||||
request_digit_cb_t func;
|
struct test *test; \
|
||||||
DBusMessage *reply;
|
get_inkey_cb_t func; \
|
||||||
|
DBusMessage *reply; \
|
||||||
|
\
|
||||||
|
if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &alpha, \
|
||||||
|
DBUS_TYPE_BYTE, &icon_id, \
|
||||||
|
DBUS_TYPE_INVALID) == FALSE) \
|
||||||
|
return stktest_error_invalid_args(msg); \
|
||||||
|
\
|
||||||
|
if (cur_test == NULL) \
|
||||||
|
return stktest_error_failed(msg); \
|
||||||
|
\
|
||||||
|
test = cur_test->data; \
|
||||||
|
func = test->agent_func; \
|
||||||
|
\
|
||||||
|
if (strcmp(test->method, method_name)) { \
|
||||||
|
g_printerr("Wrong method called!\n"); \
|
||||||
|
__stktest_test_finish(FALSE); \
|
||||||
|
return stktest_error_failed(msg); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
if (func == NULL) { \
|
||||||
|
g_printerr(method_name " not expected to be called"); \
|
||||||
|
__stktest_test_finish(FALSE); \
|
||||||
|
return stktest_error_failed(msg); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
reply = func(msg, alpha, icon_id); \
|
||||||
|
if (reply == NULL) \
|
||||||
|
pending = dbus_message_ref(msg); \
|
||||||
|
\
|
||||||
|
return reply; \
|
||||||
|
} \
|
||||||
|
|
||||||
if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &alpha,
|
GET_INKEY_TEMPLATE(agent_request_key, "RequestKey")
|
||||||
DBUS_TYPE_BYTE, &icon_id,
|
GET_INKEY_TEMPLATE(agent_request_digit, "RequestDigit")
|
||||||
DBUS_TYPE_INVALID) == FALSE)
|
|
||||||
return stktest_error_invalid_args(msg);
|
|
||||||
|
|
||||||
if (cur_test == NULL)
|
|
||||||
return stktest_error_failed(msg);
|
|
||||||
|
|
||||||
test = cur_test->data;
|
|
||||||
func = test->agent_func;
|
|
||||||
|
|
||||||
if (strcmp(test->method, "RequestDigit")) {
|
|
||||||
g_printerr("Wrong method called!\n");
|
|
||||||
__stktest_test_finish(FALSE);
|
|
||||||
return stktest_error_failed(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (func == NULL) {
|
|
||||||
g_printerr("RequestDigit not expected to be called");
|
|
||||||
__stktest_test_finish(FALSE);
|
|
||||||
return stktest_error_failed(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
reply = func(msg, alpha, icon_id);
|
|
||||||
if (reply == NULL)
|
|
||||||
pending = dbus_message_ref(msg);
|
|
||||||
|
|
||||||
return reply;
|
|
||||||
}
|
|
||||||
|
|
||||||
static DBusMessage *agent_request_key(DBusConnection *conn, DBusMessage *msg,
|
|
||||||
void *data)
|
|
||||||
{
|
|
||||||
const char *alpha;
|
|
||||||
unsigned char icon_id;
|
|
||||||
struct test *test;
|
|
||||||
request_key_cb_t func;
|
|
||||||
DBusMessage *reply;
|
|
||||||
|
|
||||||
if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &alpha,
|
|
||||||
DBUS_TYPE_BYTE, &icon_id,
|
|
||||||
DBUS_TYPE_INVALID) == FALSE)
|
|
||||||
return stktest_error_invalid_args(msg);
|
|
||||||
|
|
||||||
if (cur_test == NULL)
|
|
||||||
return stktest_error_failed(msg);
|
|
||||||
|
|
||||||
test = cur_test->data;
|
|
||||||
func = test->agent_func;
|
|
||||||
|
|
||||||
if (strcmp(test->method, "RequestKey")) {
|
|
||||||
g_printerr("Wrong method called!\n");
|
|
||||||
__stktest_test_finish(FALSE);
|
|
||||||
return stktest_error_failed(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (func == NULL) {
|
|
||||||
g_printerr("RequestKey not expected to be called");
|
|
||||||
__stktest_test_finish(FALSE);
|
|
||||||
return stktest_error_failed(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
reply = func(msg, alpha, icon_id);
|
|
||||||
if (reply == NULL)
|
|
||||||
pending = dbus_message_ref(msg);
|
|
||||||
|
|
||||||
return reply;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void server_debug(const char *str, void *data)
|
static void server_debug(const char *str, void *data)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue