diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2015-05-01 14:55:58 +0300 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2015-05-01 15:06:57 +0300 |
commit | 9f086ffa43f2507b9d17522a0a2e394cb273baf8 (patch) | |
tree | 357709f497737b2591625973e3f4bee9ae63b5a2 /tests/basic.c | |
parent | e40eff94f9f8654c3d29e03bbb7e5ee6a43c1435 (diff) | |
download | libgcrypt-9f086ffa43f2507b9d17522a0a2e394cb273baf8.tar.gz |
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 <jussi.kivilinna@iki.fi>
Diffstat (limited to 'tests/basic.c')
-rw-r--r-- | tests/basic.c | 24 |
1 files 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); |