aboutsummaryrefslogtreecommitdiff
path: root/libwmc/tests/test-wmc-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'libwmc/tests/test-wmc-utils.c')
-rw-r--r--libwmc/tests/test-wmc-utils.c120
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);
+}
+