Add coverage testing of mbedtls_md_clone() (and wraps)
+13 functions, +57 lines
diff --git a/tests/suites/test_suite_md.function b/tests/suites/test_suite_md.function
index e8fec28..6c34984 100644
--- a/tests/suites/test_suite_md.function
+++ b/tests/suites/test_suite_md.function
@@ -190,9 +190,10 @@
int halfway, len;
const mbedtls_md_info_t *md_info = NULL;
- mbedtls_md_context_t ctx;
+ mbedtls_md_context_t ctx, ctx_copy;
mbedtls_md_init( &ctx );
+ mbedtls_md_init( &ctx_copy );
memset(md_name, 0x00, 100);
memset(src_str, 0x00, 1000);
@@ -207,15 +208,25 @@
md_info = mbedtls_md_info_from_string(md_name);
TEST_ASSERT( md_info != NULL );
TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx, md_info, 0 ) );
+ TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx_copy, md_info, 0 ) );
TEST_ASSERT ( 0 == mbedtls_md_starts( &ctx ) );
TEST_ASSERT ( ctx.md_ctx != NULL );
TEST_ASSERT ( 0 == mbedtls_md_update( &ctx, src_str, halfway ) );
+ TEST_ASSERT ( 0 == mbedtls_md_clone( &ctx_copy, &ctx ) );
+
TEST_ASSERT ( 0 == mbedtls_md_update( &ctx, src_str + halfway, len - halfway ) );
TEST_ASSERT ( 0 == mbedtls_md_finish( &ctx, output ) );
-
hexify( hash_str, output, mbedtls_md_get_size(md_info) );
+ TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
+ /* Test clone */
+ memset(hash_str, 0x00, 1000);
+ memset(output, 0x00, 100);
+
+ TEST_ASSERT ( 0 == mbedtls_md_update( &ctx_copy, src_str + halfway, len - halfway ) );
+ TEST_ASSERT ( 0 == mbedtls_md_finish( &ctx_copy, output ) );
+ hexify( hash_str, output, mbedtls_md_get_size(md_info) );
TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
exit:
@@ -233,9 +244,10 @@
unsigned char output[100];
int src_len, halfway;
const mbedtls_md_info_t *md_info = NULL;
- mbedtls_md_context_t ctx;
+ mbedtls_md_context_t ctx, ctx_copy;
mbedtls_md_init( &ctx );
+ mbedtls_md_init( &ctx_copy );
memset(md_name, 0x00, 100);
memset(src_str, 0x00, 10000);
@@ -246,6 +258,7 @@
md_info = mbedtls_md_info_from_string(md_name);
TEST_ASSERT( md_info != NULL );
TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx, md_info, 0 ) );
+ TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx_copy, md_info, 0 ) );
src_len = unhexify( src_str, hex_src_string );
halfway = src_len / 2;
@@ -253,11 +266,20 @@
TEST_ASSERT ( 0 == mbedtls_md_starts( &ctx ) );
TEST_ASSERT ( ctx.md_ctx != NULL );
TEST_ASSERT ( 0 == mbedtls_md_update( &ctx, src_str, halfway ) );
+ TEST_ASSERT ( 0 == mbedtls_md_clone( &ctx_copy, &ctx ) );
+
TEST_ASSERT ( 0 == mbedtls_md_update( &ctx, src_str + halfway, src_len - halfway) );
TEST_ASSERT ( 0 == mbedtls_md_finish( &ctx, output ) );
-
hexify( hash_str, output, mbedtls_md_get_size(md_info) );
+ TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
+ /* Test clone */
+ memset(hash_str, 0x00, 10000);
+ memset(output, 0x00, 100);
+
+ TEST_ASSERT ( 0 == mbedtls_md_update( &ctx_copy, src_str + halfway, src_len - halfway ) );
+ TEST_ASSERT ( 0 == mbedtls_md_finish( &ctx_copy, output ) );
+ hexify( hash_str, output, mbedtls_md_get_size(md_info) );
TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
exit: