aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-10-14 00:00:44 -0500
committerDan Williams <dcbw@redhat.com>2010-10-14 00:00:44 -0500
commit79ae78a740dd3c41bd0e71984acceb9bdb1be2b2 (patch)
treedeb8f024d19ba402d13aba9ca76ce34a8b0dc33f
parenta9152f21ff40f4515237c40c691e2b87511b0c41 (diff)
qcdm: add testcase to ensure that parsing Sierra CnS fails
Because CnS uses HDLC framing, but doesn't use CRC16, and thus the decapsulation should fail because the CRC check fails.
-rw-r--r--libqcdm/tests/test-qcdm-utils.c20
-rw-r--r--libqcdm/tests/test-qcdm-utils.h2
-rw-r--r--libqcdm/tests/test-qcdm.c1
3 files changed, 23 insertions, 0 deletions
diff --git a/libqcdm/tests/test-qcdm-utils.c b/libqcdm/tests/test-qcdm-utils.c
index 27ec8d61..04807c16 100644
--- a/libqcdm/tests/test-qcdm-utils.c
+++ b/libqcdm/tests/test-qcdm-utils.c
@@ -84,3 +84,23 @@ test_utils_encapsulate_buffer (void *f, void *data)
g_assert (memcmp (outbuf, encap_outbuf, encap_len) == 0);
}
+static const char cns_inbuf[] = {
+ 0x00, 0x0a, 0x6b, 0x74, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7e
+};
+
+void
+test_utils_decapsulate_sierra_cns (void *f, void *data)
+{
+ gboolean success;
+ char outbuf[512];
+ gsize decap_len = 0;
+ gsize used = 0;
+ gboolean more = FALSE;
+
+ success = dm_decapsulate_buffer (cns_inbuf, sizeof (cns_inbuf),
+ outbuf, sizeof (outbuf),
+ &decap_len, &used, &more);
+ g_assert (success == FALSE);
+}
+
diff --git a/libqcdm/tests/test-qcdm-utils.h b/libqcdm/tests/test-qcdm-utils.h
index 80386664..65a99441 100644
--- a/libqcdm/tests/test-qcdm-utils.h
+++ b/libqcdm/tests/test-qcdm-utils.h
@@ -22,5 +22,7 @@ void test_utils_decapsulate_buffer (void *f, void *data);
void test_utils_encapsulate_buffer (void *f, void *data);
+void test_utils_decapsulate_sierra_cns (void *f, void *data);
+
#endif /* TEST_QCDM_UTILS_H */
diff --git a/libqcdm/tests/test-qcdm.c b/libqcdm/tests/test-qcdm.c
index 63421c70..5867bcb9 100644
--- a/libqcdm/tests/test-qcdm.c
+++ b/libqcdm/tests/test-qcdm.c
@@ -89,6 +89,7 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_escape_unescape, NULL));
g_test_suite_add (suite, TESTCASE (test_utils_decapsulate_buffer, NULL));
g_test_suite_add (suite, TESTCASE (test_utils_encapsulate_buffer, NULL));
+ g_test_suite_add (suite, TESTCASE (test_utils_decapsulate_sierra_cns, NULL));
g_test_suite_add (suite, TESTCASE (test_result_string, NULL));
g_test_suite_add (suite, TESTCASE (test_result_uint32, NULL));
g_test_suite_add (suite, TESTCASE (test_result_uint8, NULL));