diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-06-30 17:36:09 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-07-02 19:03:04 -0500 |
commit | cd7ee03542db55d6b4a81bdce3673779be2b92b6 (patch) | |
tree | 79edce0d6a9cc50991bbb7630311f70d89c3268c /unit/test-sms.c | |
parent | b1602d49e5a2b075625f63ff460c77d47eb76c09 (diff) | |
download | ofono-cd7ee03542db55d6b4a81bdce3673779be2b92b6.tar.bz2 |
Add unit test for CBS encode / decode
Diffstat (limited to 'unit/test-sms.c')
-rw-r--r-- | unit/test-sms.c | 48 |
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(); } |