From 25d30015563196d06fc30644556beb12250683db Mon Sep 17 00:00:00 2001 From: iphydf Date: Sat, 13 Jan 2018 20:51:04 +0000 Subject: [PATCH] Use larger arrays in crypto timing tests. Increasing from 256K to 1M and increasing the number of iterations from 1000 to 2000. This makes the test more accurate and less flaky. --- auto_tests/crypto_test.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/auto_tests/crypto_test.c b/auto_tests/crypto_test.c index 2fdfb0cd..5f162499 100644 --- a/auto_tests/crypto_test.c +++ b/auto_tests/crypto_test.c @@ -339,8 +339,8 @@ START_TEST(test_memzero) } END_TEST -#define CRYPTO_TEST_MEMCMP_SIZE 1024*256 -#define CRYPTO_TEST_MEMCMP_COUNT 1000 +#define CRYPTO_TEST_MEMCMP_SIZE 1024*1024 // 1MiB +#define CRYPTO_TEST_MEMCMP_COUNT 2000 #define CRYPTO_TEST_MEMCMP_EPS 10 static int cmp(const void *a, const void *b) @@ -381,21 +381,25 @@ static clock_t memcmp_median(void *a, void *b, size_t len) START_TEST(test_memcmp) { - uint8_t src[CRYPTO_TEST_MEMCMP_SIZE]; - rand_bytes(src, sizeof(src)); + uint8_t *src = (uint8_t *)malloc(CRYPTO_TEST_MEMCMP_SIZE); + rand_bytes(src, CRYPTO_TEST_MEMCMP_SIZE); - uint8_t same[sizeof(src)]; - memcpy(same, src, sizeof(src)); + uint8_t *same = (uint8_t *)malloc(CRYPTO_TEST_MEMCMP_SIZE); + memcpy(same, src, CRYPTO_TEST_MEMCMP_SIZE); - uint8_t not_same[sizeof(src)]; - rand_bytes(not_same, sizeof(not_same)); + uint8_t *not_same = (uint8_t *)malloc(CRYPTO_TEST_MEMCMP_SIZE); + rand_bytes(not_same, CRYPTO_TEST_MEMCMP_SIZE); printf("timing memcmp (equal arrays)\n"); - clock_t same_median = memcmp_median(src, same, sizeof(src)); + clock_t same_median = memcmp_median(src, same, CRYPTO_TEST_MEMCMP_SIZE); printf("timing memcmp (non-equal arrays)\n"); - clock_t not_same_median = memcmp_median(src, not_same, sizeof(src)); + clock_t not_same_median = memcmp_median(src, not_same, CRYPTO_TEST_MEMCMP_SIZE); printf("comparing times\n"); + free(not_same); + free(same); + free(src); + clock_t delta; if (same_median > not_same_median) { @@ -423,7 +427,7 @@ static Suite *crypto_suite(void) DEFTESTCASE(large_data_symmetric); DEFTESTCASE_SLOW(increment_nonce, 20); DEFTESTCASE(memzero); - DEFTESTCASE(memcmp); + DEFTESTCASE_SLOW(memcmp, 30); return s; }