diff options
Diffstat (limited to 'libwmc/tests/test-wmc-utils.c')
-rw-r--r-- | libwmc/tests/test-wmc-utils.c | 120 |
1 files changed, 118 insertions, 2 deletions
diff --git a/libwmc/tests/test-wmc-utils.c b/libwmc/tests/test-wmc-utils.c index 1f903ca8..c38694ae 100644 --- a/libwmc/tests/test-wmc-utils.c +++ b/libwmc/tests/test-wmc-utils.c @@ -53,7 +53,7 @@ test_utils_decapsulate_basic_buffer (void *f, void *data) gboolean more = FALSE; success = hdlc_decapsulate_buffer (decap_inbuf, sizeof (decap_inbuf), - outbuf, sizeof (outbuf), + FALSE, 0, outbuf, sizeof (outbuf), &decap_len, &used, &more); g_assert (success); g_assert (decap_len == 214); @@ -100,8 +100,124 @@ test_utils_decapsulate_sierra_cns (void *f, void *data) gboolean more = FALSE; success = hdlc_decapsulate_buffer (cns_inbuf, sizeof (cns_inbuf), - outbuf, sizeof (outbuf), + FALSE, 0, outbuf, sizeof (outbuf), &decap_len, &used, &more); g_assert (success == FALSE); } + +static const char uml290_encap_src[] = { + 0xc8, 0x0d, 0xda, 0x07, 0x0c, 0x00, 0x14, 0x00, 0x10, 0x00, 0x19, 0x00, + 0x04, 0x00, 0x01, 0x00, 0x07, 0x88 +}; + +static const char uml290_encap_outbuf[] = { + 0x41, 0x54, 0x2a, 0x57, 0x4d, 0x43, 0x3d, 0xc8, 0x7d, 0x2d, 0xda, 0x7d, + 0x27, 0x7d, 0x2c, 0x7d, 0x20, 0x7d, 0x34, 0x7d, 0x20, 0x7d, 0x30, 0x7d, + 0x20, 0x7d, 0x39, 0x7d, 0x20, 0x7d, 0x24, 0x7d, 0x20, 0x7d, 0x21, 0x7d, + 0x20, 0x7d, 0x27, 0x88, 0x0d +}; + +void +test_utils_encapsulate_uml290_wmc1 (void *f, void *data) +{ + char inbuf[512]; + char outbuf[512]; + gsize encap_len = 0; + + memcpy (inbuf, uml290_encap_src, sizeof (uml290_encap_src)); + encap_len = uml290_wmc_encapsulate (inbuf, sizeof (uml290_encap_src), + sizeof (inbuf), outbuf, sizeof (outbuf)); + g_assert (encap_len == sizeof (encap_outbuf)); + g_assert (memcmp (outbuf, encap_outbuf, encap_len) == 0); +} + +static const char uml290_src[] = { + 0xc8, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xda, 0x07, 0x0c, 0x00, + 0x14, 0x00, 0x12, 0x00, 0x19, 0x00, 0x06, 0x00, 0xc2, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x7d, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x5d, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, + 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x30, 0x30, 0x7e +}; + +static const char uml290_expected[] = { + 0xc8, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xda, 0x07, 0x0c, 0x00, + 0x14, 0x00, 0x12, 0x00, 0x19, 0x00, 0x06, 0x00, 0xc2, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, + 0x00, 0x40, 0x06, 0x00, 0x00 +}; + +void +test_utils_decapsulate_uml290_wmc1 (void *f, void *data) +{ + gboolean success; + char outbuf[512]; + gsize decap_len = 0; + gsize used = 0; + gboolean more = FALSE; + + success = hdlc_decapsulate_buffer (uml290_src, sizeof (uml290_src), + TRUE, 0x3030, outbuf, sizeof (outbuf), + &decap_len, &used, &more); + g_assert (success == TRUE); + g_assert (more == 0); + g_assert_cmpint (used, ==, sizeof (uml290_src)); + g_assert_cmpint (decap_len, ==, sizeof (uml290_expected)); + g_assert_cmpint (memcmp (outbuf, uml290_expected, decap_len), ==, 0); +} + + +static const char pc5740_src[] = { + 0xc8, 0x0b, 0x17, 0x00, 0x00, 0x00, 0x06, 0x00, 0xdb, 0x07, 0x06, 0x00, + 0x11, 0x00, 0x0d, 0x00, 0x2d, 0x00, 0x10, 0x00, 0xe4, 0x03, 0xd4, 0xfe, + 0xff, 0xff, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x92, 0x7e +}; + +static const char pc5740_expected[] = { + 0xc8, 0x0b, 0x17, 0x00, 0x00, 0x00, 0x06, 0x00, 0xdb, 0x07, 0x06, 0x00, + 0x11, 0x00, 0x0d, 0x00, 0x2d, 0x00, 0x10, 0x00, 0xe4, 0x03, 0xd4, 0xfe, + 0xff, 0xff, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +void +test_utils_decapsulate_pc5740_wmc1 (void *f, void *data) +{ + gboolean success; + char outbuf[512]; + gsize decap_len = 0; + gsize used = 0; + gboolean more = FALSE; + + success = hdlc_decapsulate_buffer (pc5740_src, sizeof (pc5740_src), + FALSE, 0, outbuf, sizeof (outbuf), + &decap_len, &used, &more); + g_assert (success == TRUE); + g_assert (more == 0); + g_assert_cmpint (used, ==, sizeof (pc5740_src)); + g_assert_cmpint (decap_len, ==, sizeof (pc5740_expected)); + g_assert_cmpint (memcmp (outbuf, pc5740_expected, decap_len), ==, 0); +} + |