mirror of
https://github.com/systemd/systemd.git
synced 2025-03-24 14:50:17 +03:00
test: siphash24 - add regression test
This commit is contained in:
parent
f4e5a03ed7
commit
a245d90a89
1
.gitignore
vendored
1
.gitignore
vendored
@ -249,6 +249,7 @@
|
||||
/test-sched-prio
|
||||
/test-set
|
||||
/test-sigbus
|
||||
/test-siphash24
|
||||
/test-sleep
|
||||
/test-socket-util
|
||||
/test-ssd
|
||||
|
@ -1396,6 +1396,7 @@ tests += \
|
||||
test-path \
|
||||
test-path-util \
|
||||
test-strxcpyx \
|
||||
test-siphash24 \
|
||||
test-unit-name \
|
||||
test-unit-file \
|
||||
test-utf8 \
|
||||
@ -2010,6 +2011,12 @@ test_execute_CFLAGS = \
|
||||
test_execute_LDADD = \
|
||||
libcore.la
|
||||
|
||||
test_siphash24_SOURCES = \
|
||||
src/test/test-siphash24.c
|
||||
|
||||
test_siphash24_LDADD = \
|
||||
libshared.la
|
||||
|
||||
test_strxcpyx_SOURCES = \
|
||||
src/test/test-strxcpyx.c
|
||||
|
||||
|
47
src/test/test-siphash24.c
Normal file
47
src/test/test-siphash24.c
Normal file
@ -0,0 +1,47 @@
|
||||
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
|
||||
/***
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2015 Tom Gundersen
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
systemd 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
#include "util.h"
|
||||
#include "siphash24.h"
|
||||
|
||||
#define ITERATIONS 10000000ULL
|
||||
|
||||
/* see https://131002.net/siphash/siphash.pdf, Appendix A */
|
||||
int main(int argc, char *argv[]) {
|
||||
const uint8_t in[15] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e };
|
||||
const uint8_t key[16] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f};
|
||||
uint64_t out = 0;
|
||||
unsigned k;
|
||||
usec_t ts;
|
||||
|
||||
siphash24((uint8_t *)&out, in, sizeof(in), key);
|
||||
|
||||
assert_se(out == 0xa129ca6149be45e5ULL);
|
||||
|
||||
ts = now(CLOCK_MONOTONIC);
|
||||
for (k = 0; k < ITERATIONS; k++)
|
||||
siphash24((uint8_t *)&out, in, sizeof(in), key);
|
||||
ts = now(CLOCK_MONOTONIC) - ts;
|
||||
|
||||
log_info("%llu iterations per second", (ITERATIONS * USEC_PER_SEC) / ts);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user