From: Bruno Haible Date: Tue, 11 Jul 2023 19:43:27 +0000 (+0200) Subject: tests: Create new file bench.h. X-Git-Tag: v1.0~1132 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=117c429a235909864fb642b78ad276cc174fc842;p=gnulib.git tests: Create new file bench.h. * tests/bench.h: New file, extracted from tests/bench-digest.h. * tests/bench-digest.h: Include it. * modules/crypto/md5-buffer-tests (Files): Add tests/bench.h. * modules/crypto/sha1-buffer-tests (Files): Likewise. * modules/crypto/sha256-buffer-tests (Files): Likewise. * modules/crypto/sha512-buffer-tests (Files): Likewise. --- diff --git a/ChangeLog b/ChangeLog index f233e3c5db..9f2adb36f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2023-07-11 Bruno Haible + + tests: Create new file bench.h. + * tests/bench.h: New file, extracted from tests/bench-digest.h. + * tests/bench-digest.h: Include it. + * modules/crypto/md5-buffer-tests (Files): Add tests/bench.h. + * modules/crypto/sha1-buffer-tests (Files): Likewise. + * modules/crypto/sha256-buffer-tests (Files): Likewise. + * modules/crypto/sha512-buffer-tests (Files): Likewise. + 2023-07-11 Bruno Haible Optimize away some mbsinit calls. diff --git a/modules/crypto/md5-buffer-tests b/modules/crypto/md5-buffer-tests index cc07337f08..312fc4a399 100644 --- a/modules/crypto/md5-buffer-tests +++ b/modules/crypto/md5-buffer-tests @@ -2,6 +2,7 @@ Files: tests/test-md5-buffer.c tests/bench-md5.c tests/bench-digest.h +tests/bench.h Depends-on: c99 diff --git a/modules/crypto/sha1-buffer-tests b/modules/crypto/sha1-buffer-tests index 7420378c82..ec2144f095 100644 --- a/modules/crypto/sha1-buffer-tests +++ b/modules/crypto/sha1-buffer-tests @@ -2,6 +2,7 @@ Files: tests/test-sha1-buffer.c tests/bench-sha1.c tests/bench-digest.h +tests/bench.h Depends-on: c99 diff --git a/modules/crypto/sha256-buffer-tests b/modules/crypto/sha256-buffer-tests index 53924b4a03..8e16fd9c83 100644 --- a/modules/crypto/sha256-buffer-tests +++ b/modules/crypto/sha256-buffer-tests @@ -2,6 +2,7 @@ Files: tests/bench-sha224.c tests/bench-sha256.c tests/bench-digest.h +tests/bench.h Depends-on: c99 diff --git a/modules/crypto/sha512-buffer-tests b/modules/crypto/sha512-buffer-tests index 0b61ec444b..042046a4f8 100644 --- a/modules/crypto/sha512-buffer-tests +++ b/modules/crypto/sha512-buffer-tests @@ -2,6 +2,7 @@ Files: tests/bench-sha384.c tests/bench-sha512.c tests/bench-digest.h +tests/bench.h Depends-on: c99 diff --git a/tests/bench-digest.h b/tests/bench-digest.h index 38c4f03dc8..95d7300d6e 100644 --- a/tests/bench-digest.h +++ b/tests/bench-digest.h @@ -16,58 +16,8 @@ #include #include -#include -#include -struct timings_state -{ - /* Filled when the timings start. */ - struct timeval real_start; - struct timeval user_start; - struct timeval sys_start; - /* Filled when the timings end. */ - long real_usec; - long user_usec; - long sys_usec; -}; - -static void -timing_start (struct timings_state *ts) -{ - struct rusage usage; - - getrusage (RUSAGE_SELF, &usage); - ts->user_start = usage.ru_utime; - ts->sys_start = usage.ru_stime; - - gettimeofday (&ts->real_start, NULL); -} - -static void -timing_end (struct timings_state *ts) -{ - struct timeval real_end; - struct rusage usage; - - gettimeofday (&real_end, NULL); - - getrusage (RUSAGE_SELF, &usage); - - ts->real_usec = (real_end.tv_sec - ts->real_start.tv_sec) * 1000000 - + real_end.tv_usec - ts->real_start.tv_usec; - ts->user_usec = (usage.ru_utime.tv_sec - ts->user_start.tv_sec) * 1000000 - + usage.ru_utime.tv_usec - ts->user_start.tv_usec; - ts->sys_usec = (usage.ru_stime.tv_sec - ts->sys_start.tv_sec) * 1000000 - + usage.ru_stime.tv_usec - ts->sys_start.tv_usec; -} - -static void -timing_output (const struct timings_state *ts) -{ - printf ("real %10.6f\n", (double)ts->real_usec / 1000000.0); - printf ("user %7.3f\n", (double)ts->user_usec / 1000000.0); - printf ("sys %7.3f\n", (double)ts->sys_usec / 1000000.0); -} +#include "bench.h" int main (int argc, char *argv[]) diff --git a/tests/bench.h b/tests/bench.h new file mode 100644 index 0000000000..4bfdbd4ec1 --- /dev/null +++ b/tests/bench.h @@ -0,0 +1,69 @@ +/* Utilities for benchmarks. + Copyright (C) 2018-2023 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include +#include +#include + +struct timings_state +{ + /* Filled when the timings start. */ + struct timeval real_start; + struct timeval user_start; + struct timeval sys_start; + /* Filled when the timings end. */ + long real_usec; + long user_usec; + long sys_usec; +}; + +static void +timing_start (struct timings_state *ts) +{ + struct rusage usage; + + getrusage (RUSAGE_SELF, &usage); + ts->user_start = usage.ru_utime; + ts->sys_start = usage.ru_stime; + + gettimeofday (&ts->real_start, NULL); +} + +static void +timing_end (struct timings_state *ts) +{ + struct timeval real_end; + struct rusage usage; + + gettimeofday (&real_end, NULL); + + getrusage (RUSAGE_SELF, &usage); + + ts->real_usec = (real_end.tv_sec - ts->real_start.tv_sec) * 1000000 + + real_end.tv_usec - ts->real_start.tv_usec; + ts->user_usec = (usage.ru_utime.tv_sec - ts->user_start.tv_sec) * 1000000 + + usage.ru_utime.tv_usec - ts->user_start.tv_usec; + ts->sys_usec = (usage.ru_stime.tv_sec - ts->sys_start.tv_sec) * 1000000 + + usage.ru_stime.tv_usec - ts->sys_start.tv_usec; +} + +static void +timing_output (const struct timings_state *ts) +{ + printf ("real %10.6f\n", (double)ts->real_usec / 1000000.0); + printf ("user %7.3f\n", (double)ts->user_usec / 1000000.0); + printf ("sys %7.3f\n", (double)ts->sys_usec / 1000000.0); +}