summaryrefslogtreecommitdiff
path: root/unit
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2017-10-03 10:30:25 -0500
committerDenis Kenzior <denkenz@gmail.com>2017-10-05 11:08:38 -0500
commitbc239450b699e24254f1f211786705e2ff7807db (patch)
treedc92c2ec055ce0277930e857d43467467f63d7fe /unit
parenta64b5453e8527daee103e9d6a0b5cbe67ba38071 (diff)
downloadofono-bc239450b699e24254f1f211786705e2ff7807db.tar.gz
unit: Add subscriber ready status test
Diffstat (limited to 'unit')
-rw-r--r--unit/test-mbim.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/unit/test-mbim.c b/unit/test-mbim.c
index f236f82d..eb8aa8a9 100644
--- a/unit/test-mbim.c
+++ b/unit/test-mbim.c
@@ -69,6 +69,30 @@ static const struct message_data message_data_device_caps = {
.binary_len = sizeof(message_binary_device_caps),
};
+static const unsigned char message_binary_subscriber_ready_status[] = {
+ 0x03, 0x00, 0x00, 0x80, 0xB4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x89, 0xCC, 0x33,
+ 0xBC, 0xBB, 0x8B, 0x4F, 0xB6, 0xB0, 0x13, 0x3E, 0xC2, 0xAA, 0xE6, 0xDF,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,
+ 0x44, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
+ 0x33, 0x00, 0x31, 0x00, 0x30, 0x00, 0x34, 0x00, 0x31, 0x00, 0x30, 0x00,
+ 0x32, 0x00, 0x32, 0x00, 0x37, 0x00, 0x39, 0x00, 0x32, 0x00, 0x33, 0x00,
+ 0x33, 0x00, 0x37, 0x00, 0x34, 0x00, 0x00, 0x00, 0x38, 0x00, 0x39, 0x00,
+ 0x30, 0x00, 0x31, 0x00, 0x34, 0x00, 0x31, 0x00, 0x30, 0x00, 0x34, 0x00,
+ 0x32, 0x00, 0x31, 0x00, 0x32, 0x00, 0x32, 0x00, 0x37, 0x00, 0x39, 0x00,
+ 0x32, 0x00, 0x33, 0x00, 0x33, 0x00, 0x37, 0x00, 0x34, 0x00, 0x37, 0x00,
+ 0x31, 0x00, 0x35, 0x00, 0x31, 0x00, 0x32, 0x00, 0x34, 0x00, 0x33, 0x00,
+ 0x31, 0x00, 0x30, 0x00, 0x35, 0x00, 0x39, 0x00, 0x36, 0x00, 0x00, 0x00
+};
+
+static const struct message_data message_data_subscriber_ready_status = {
+ .tid = 2,
+ .binary = message_binary_subscriber_ready_status,
+ .binary_len = sizeof(message_binary_subscriber_ready_status),
+};
+
static struct mbim_message *build_message(const struct message_data *msg_data)
{
static const int frag_size = 64;
@@ -147,6 +171,45 @@ static void parse_device_caps(const void *data)
mbim_message_unref(msg);
}
+static void parse_subscriber_ready_status(const void *data)
+{
+ struct mbim_message *msg = build_message(data);
+ uint32_t ready_state;
+ char *imsi;
+ char *iccid;
+ uint32_t ready_info;
+ uint32_t n_phone_numbers;
+ char *phone_number;
+ struct mbim_message_iter array;
+ bool r;
+
+ r = mbim_message_get_arguments(msg, "ussuas",
+ &ready_state, &imsi, &iccid,
+ &ready_info,
+ &n_phone_numbers, &array);
+ assert(r);
+
+ assert(ready_state == 1);
+ assert(imsi);
+ assert(!strcmp(imsi, "310410227923374"));
+ assert(iccid);
+ assert(!strcmp(iccid, "89014104212279233747"));
+ assert(ready_info == 0);
+
+ assert(n_phone_numbers == 1);
+ assert(mbim_message_iter_next_entry(&array, &phone_number));
+
+ assert(phone_number);
+ assert(!strcmp(phone_number, "15124310596"));
+ l_free(phone_number);
+
+ assert(!mbim_message_iter_next_entry(&array, &phone_number));
+
+ l_free(imsi);
+ l_free(iccid);
+ mbim_message_unref(msg);
+}
+
int main(int argc, char *argv[])
{
l_test_init(&argc, &argv);
@@ -154,5 +217,9 @@ int main(int argc, char *argv[])
l_test_add("Device Caps (parse)",
parse_device_caps, &message_data_device_caps);
+ l_test_add("Subscriber Ready Status (parse)",
+ parse_subscriber_ready_status,
+ &message_data_subscriber_ready_status);
+
return l_test_run();
}