summaryrefslogtreecommitdiffstats
path: root/unit/test-sms.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-06-30 17:36:09 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-07-02 19:03:04 -0500
commitcd7ee03542db55d6b4a81bdce3673779be2b92b6 (patch)
tree79edce0d6a9cc50991bbb7630311f70d89c3268c /unit/test-sms.c
parentb1602d49e5a2b075625f63ff460c77d47eb76c09 (diff)
downloadofono-cd7ee03542db55d6b4a81bdce3673779be2b92b6.tar.bz2
Add unit test for CBS encode / decode
Diffstat (limited to 'unit/test-sms.c')
-rw-r--r--unit/test-sms.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/unit/test-sms.c b/unit/test-sms.c
index dd64d53e..c46b1b4f 100644
--- a/unit/test-sms.c
+++ b/unit/test-sms.c
@@ -839,6 +839,51 @@ static void test_prepare_concat()
g_assert(strcmp(decoded_str, pad1) == 0);
}
+static const char *cbs1 = "011000320111C2327BFC76BBCBEE46A3D168341A8D46A3D1683"
+ "41A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D168"
+ "341A8D46A3D168341A8D46A3D168341A8D46A3D168341A8D46A3D100";
+
+static void test_cbs_encode_decode()
+{
+ unsigned char *decoded_pdu;
+ long pdu_len;
+ gboolean ret;
+ struct cbs cbs;
+ unsigned char pdu[88];
+ int len;
+ char *encoded_pdu;
+
+ decoded_pdu = decode_hex(cbs1, -1, &pdu_len, 0);
+
+ g_assert(decoded_pdu);
+ g_assert(pdu_len == (long)strlen(cbs1) / 2);
+ g_assert(pdu_len == 88);
+
+ ret = cbs_decode(decoded_pdu, pdu_len, &cbs);
+
+ g_free(decoded_pdu);
+
+ g_assert(ret);
+
+ g_assert(cbs.gs == CBS_GEO_SCOPE_CELL_IMMEDIATE);
+ g_assert(cbs.message_code == 17);
+ g_assert(cbs.update_number == 0);
+ g_assert(cbs.message_identifier == 50);
+ g_assert(cbs.dcs == 1);
+ g_assert(cbs.max_pages == 1);
+ g_assert(cbs.page == 1);
+
+ ret = cbs_encode(&cbs, &len, pdu);
+
+ g_assert(ret);
+
+ encoded_pdu = encode_hex(pdu, len, 0);
+
+ g_assert(strcmp(cbs1, encoded_pdu) == 0);
+
+ g_free(encoded_pdu);
+}
+
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
@@ -853,5 +898,8 @@ int main(int argc, char **argv)
g_test_add_func("/testsms/Test Prepare 7Bit", test_prepare_7bit);
g_test_add_func("/testsms/Test Prepare Concat", test_prepare_concat);
+ g_test_add_func("/testsms/Test CBS Encode / Decode",
+ test_cbs_encode_decode);
+
return g_test_run();
}