diff options
author | Dan Williams <dcbw@redhat.com> | 2010-10-14 00:00:44 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-10-14 00:00:44 -0500 |
commit | 79ae78a740dd3c41bd0e71984acceb9bdb1be2b2 (patch) | |
tree | deb8f024d19ba402d13aba9ca76ce34a8b0dc33f | |
parent | a9152f21ff40f4515237c40c691e2b87511b0c41 (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.c | 20 | ||||
-rw-r--r-- | libqcdm/tests/test-qcdm-utils.h | 2 | ||||
-rw-r--r-- | libqcdm/tests/test-qcdm.c | 1 |
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)); |