1
mirror of https://github.com/jedisct1/libsodium.git synced 2024-12-24 20:45:17 -07:00

Add a benchmark mode

This commit is contained in:
Frank Denis 2017-08-04 23:08:22 +02:00
parent 8813c36fff
commit 5b4db091df

View File

@ -30,7 +30,51 @@
int xmain(void); int xmain(void);
#ifndef BROWSER_TESTS #ifdef BENCHMARKS
# include <sys/time.h>
# define ITERATIONS 256
static unsigned long long now(void)
{
struct timeval tp;
unsigned long long now;
if (gettimeofday(&tp, NULL) != 0) {
abort();
}
now = ((unsigned long long) tp.tv_sec * 1000000ULL) +
(unsigned long long) tp.tv_usec;
return now;
}
int main(void)
{
unsigned long long ts_start;
unsigned long long ts_end;
unsigned int i;
if (sodium_init() != 0) {
return 99;
}
randombytes_set_implementation(&randombytes_salsa20_implementation);
ts_start = now();
for (i = 0; i < ITERATIONS; i++) {
if (xmain() != 0) {
abort();
}
}
ts_end = now();
printf("%llu\n", ts_end - ts_start);
return 0;
}
#define printf(...) do { } while(0)
#elif !defined(BROWSER_TESTS)
FILE *fp_res; FILE *fp_res;