summaryrefslogtreecommitdiff
path: root/src/libmbim-glib/test/test-message-parser.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2019-11-26 22:14:01 +0100
committerAleksander Morgado <aleksander@aleksander.es>2019-11-26 23:01:19 +0100
commita850e71dadc4a109b81d580b6c2d7be1132b1f32 (patch)
treef39a7b391c593c0b991c244a33ffb494ef7367f4 /src/libmbim-glib/test/test-message-parser.c
parentb9d63f822a57fc09afacbef37cbe2cd57bd1054d (diff)
libmbim-glib,test: add test for failed message parsing
Diffstat (limited to 'src/libmbim-glib/test/test-message-parser.c')
-rw-r--r--src/libmbim-glib/test/test-message-parser.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/libmbim-glib/test/test-message-parser.c b/src/libmbim-glib/test/test-message-parser.c
index 273c443..35d761d 100644
--- a/src/libmbim-glib/test/test-message-parser.c
+++ b/src/libmbim-glib/test/test-message-parser.c
@@ -1744,6 +1744,53 @@ test_message_parser_ms_firmware_id_get (void)
mbim_message_unref (response);
}
+static void
+test_message_parser_basic_connect_connect_short (void)
+{
+ MbimMessage *response;
+ GError *error = NULL;
+ guint32 session_id;
+ MbimActivationState activation_state;
+ MbimVoiceCallState voice_call_state;
+ MbimContextIpType ip_type;
+ const MbimUuid *context_type;
+ guint32 nw_error;
+ const guint8 buffer [] = {
+ /* header */
+ 0x03, 0x00, 0x00, 0x80, /* type */
+ 0x30, 0x00, 0x00, 0x00, /* length */
+ 0x1A, 0x0D, 0x00, 0x00, /* transaction id */
+ /* fragment header */
+ 0x01, 0x00, 0x00, 0x00, /* total */
+ 0x00, 0x00, 0x00, 0x00, /* current */
+ /* command_done_message */
+ 0xA2, 0x89, 0xCC, 0x33, /* service id */
+ 0xBC, 0xBB, 0x8B, 0x4F,
+ 0xB6, 0xB0, 0x13, 0x3E,
+ 0xC2, 0xAA, 0xE6, 0xDF, /* command id */
+ 0x0C, 0x00, 0x00, 0x00, /* status code */
+ 0x02, 0x00, 0x00, 0x00, /* buffer length */
+ /* information buffer */
+ 0x00, 0x00, 0x00, 0x00
+ };
+
+ response = mbim_message_new (buffer, sizeof (buffer));
+
+ /* should fail! */
+ g_assert (!mbim_message_connect_response_parse (
+ response,
+ &session_id,
+ &activation_state,
+ &voice_call_state,
+ &ip_type,
+ &context_type,
+ &nw_error,
+ &error));
+
+ g_assert (error != NULL);
+ g_error_free (error);
+}
+
int main (int argc, char **argv)
{
g_test_init (&argc, &argv, NULL);
@@ -1767,6 +1814,7 @@ int main (int argc, char **argv)
g_test_add_func ("/libmbim-glib/message/parser/basic-connect/ip-packet-filters/one", test_message_parser_basic_connect_ip_packet_filters_one);
g_test_add_func ("/libmbim-glib/message/parser/basic-connect/ip-packet-filters/two", test_message_parser_basic_connect_ip_packet_filters_two);
g_test_add_func ("/libmbim-glib/message/parser/ms-firmware-id/get", test_message_parser_ms_firmware_id_get);
+ g_test_add_func ("/libmbim-glib/message/parser/basic-connect/connect/short", test_message_parser_basic_connect_connect_short);
return g_test_run ();
}