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.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user