Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libvmod-selector
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
libvmod-selector
Commits
9e2b1795
Commit
9e2b1795
authored
Jun 02, 2020
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add a test for the RNG used for perfect hashing.
parent
947d98b0
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
79 additions
and
0 deletions
+79
-0
.gitignore
.gitignore
+4
-0
Makefile.am
src/Makefile.am
+8
-0
rnd_test.c
src/rnd_test.c
+67
-0
No files found.
.gitignore
View file @
9e2b1795
...
...
@@ -40,6 +40,10 @@ Makefile.in
/src/tests/*.trs
/src/test-suite.log
/src/rnd_test
/src/rnd_test.log
/src/rnd_test.trs
# Package build artifacts
*.tar.gz
*.rpm
...
...
src/Makefile.am
View file @
9e2b1795
...
...
@@ -55,6 +55,14 @@ AM_VTC_LOG_FLAGS = -Dvmod_selector="$(VMOD_SELECTOR)"
TESTS
=
@VMOD_TESTS@
check_PROGRAMS
=
rnd_test
rnd_test_SOURCES
=
rnd_test.c rnd.h
rnd_test_CFLAGS
=
-Wall
-Werror
-Wextra
-std
=
c99
TESTS
+=
rnd_test
gcov
:
clean
$(AM_V_at)$(MAKE)
$(AM_MAKEFLAGS)
CC
=
gcc
\
CFLAGS
=
"
${
AM_CFLAGS
}
--coverage -fno-inline -g -O0"
check
...
...
src/rnd_test.c
0 → 100644
View file @
9e2b1795
/*-
* Copyright (c) 2020 UPLEX Nils Goroll Systemoptimierung
* All rights reserved
*
* Author: Geoffrey Simmons <geoffrey.simmons@uplex.de>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/* Test the KISS99 implementation for Marsaglia's known answer. */
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include "rnd.h"
#define MWC1 (12345)
#define MWC2 (65435)
#define JSR (34221)
#define JCONG (12345)
#define EXPECT (1372460312U)
int
main
(
int
argc
,
char
*
argv
[])
{
uint32_t
r
,
seed
[
4
];
(
void
)
argc
;
(
void
)
argv
;
seed
[
0
]
=
MWC1
;
seed
[
1
]
=
MWC2
;
seed
[
2
]
=
JSR
;
seed
[
3
]
=
JCONG
;
rnd_init
(
seed
);
for
(
int
i
=
0
;
i
<
1000255
;
i
++
)
(
void
)
rnd_nxt
();
r
=
rnd_nxt
();
if
(
r
!=
EXPECT
)
{
fprintf
(
stderr
,
"got %"
PRIu32
",expected %"
PRIu32
"
\n
"
,
r
,
EXPECT
);
exit
(
EXIT_FAILURE
);
}
exit
(
EXIT_SUCCESS
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment