From 9f086ffa43f2507b9d17522a0a2e394cb273baf8 Mon Sep 17 00:00:00 2001 From: Jussi Kivilinna Date: Fri, 1 May 2015 14:55:58 +0300 Subject: Use more odd chuck sizes for check_one_md * tests/basic.c (check_one_md): Make chuck size vary oddly, instead of using fixed length of 1000 bytes. -- Signed-off-by: Jussi Kivilinna --- tests/basic.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/tests/basic.c b/tests/basic.c index f3105de4..8400f9ed 100644 --- a/tests/basic.c +++ b/tests/basic.c @@ -5231,11 +5231,29 @@ check_one_md (int algo, const char *data, int len, const char *expect) if (*data == '!' && !data[1]) { /* hash one million times a "a" */ char aaa[1000]; + size_t left = 1000 * 1000; + size_t startlen = 1; + size_t piecelen = startlen; - /* Write in odd size chunks so that we test the buffering. */ memset (aaa, 'a', 1000); - for (i = 0; i < 1000; i++) - gcry_md_write (hd, aaa, 1000); + + /* Write in odd size chunks so that we test the buffering. */ + while (left > 0) + { + if (piecelen > sizeof(aaa)) + piecelen = sizeof(aaa); + if (piecelen > left) + piecelen = left; + + gcry_md_write (hd, aaa, piecelen); + + left -= piecelen; + + if (piecelen == sizeof(aaa)) + piecelen = ++startlen; + else + piecelen = piecelen * 2 - ((piecelen != startlen) ? startlen : 0); + } } else gcry_md_write (hd, data, len); -- cgit v1.2.1