diff --git a/core/Tests.cpp b/core/Tests.cpp index 56d9265b5..8f77ddbb9 100644 --- a/core/Tests.cpp +++ b/core/Tests.cpp @@ -1288,7 +1288,7 @@ extern "C" const char *ZTT_benchmarkCrypto() ctr.init(AES_CTR_TEST_VECTOR_0_IV, tmp); ctr.crypt(tmp, sizeof(tmp)); ctr.finish(); - if (unlikely((++reps & 0xffffU) == 0xffffU)) { + if (unlikely((++reps & 0xfffU) == 0xfffU)) { end = now(); if ((end - start) > 4000) break; @@ -1305,7 +1305,7 @@ extern "C" const char *ZTT_benchmarkCrypto() gmac.init(tag); gmac.update(tmp, sizeof(tmp)); gmac.finish(tag); - if (unlikely((++reps & 0xffffU) == 0xffffU)) { + if (unlikely((++reps & 0xfffU) == 0xfffU)) { end = now(); if ((end - start) > 4000) break; @@ -1316,21 +1316,26 @@ extern "C" const char *ZTT_benchmarkCrypto() } { - ZT_T_PRINTF("[crypto] Benchmarking AES-GMAC-SIV... "); + ZT_T_PRINTF("[crypto] Benchmarking AES-GMAC-SIV..."); AES k0(AES_CTR_TEST_VECTOR_0_KEY); AES k1(AES_GMAC_VECTOR_0_KEY); AES::GMACSIVEncryptor enc(k0, k1); - int64_t start = now(); - for (long i = 0; i < 350000; ++i) { - enc.init((uint64_t)i, tmp); + int64_t end, start = now(); + unsigned long reps = 0; + for (;;) { + enc.init((uint64_t)reps, tmp); enc.update1(tmp, sizeof(tmp)); enc.finish1(); enc.update2(tmp, sizeof(tmp)); enc.finish2(); + if (unlikely((++reps & 0xfffU) == 0xfffU)) { + end = now(); + if ((end - start) > 4000) + break; + } } - int64_t end = now(); foo = tmp[0]; // prevent optimization - ZT_T_PRINTF("%.4f MiB/sec" ZT_EOL_S, ((16384.0 * 350000.0) / 1048576.0) / ((double)(end - start) / 1000.0)); + ZT_T_PRINTF(" %.4f MiB/sec" ZT_EOL_S, ((16384.0 * (double)reps) / 1048576.0) / ((double)(end - start) / 1000.0)); } {