summaryrefslogtreecommitdiff
path: root/libqcdm/tests
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 /libqcdm/tests
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.
Diffstat (limited to 'libqcdm/tests')
-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));