Mercurial > hg > octave-nkf > gnulib-hg
annotate tests/test-random_r.c @ 15887:89c762414427
New module 'atanf'.
* lib/math.in.h (atanf): New declaration.
* lib/atanf.c: New file.
* m4/atanf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether atanf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ATANF, HAVE_ATANF.
* modules/math (Makefile.am): Substitute GNULIB_ATANF, HAVE_ATANF.
* modules/atanf: New file.
* tests/test-math-c++.cc: Check the declaration of atanf.
* doc/posix-functions/atanf.texi: Mention the new module.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 08 Oct 2011 23:55:44 +0200 |
parents | 97fc9a21a8fb |
children | 8250f2777afc |
rev | line source |
---|---|
10704 | 1 /* Test random_r. |
14079
97fc9a21a8fb
maint: update almost all copyright ranges to include 2011
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
2 Copyright (C) 2008-2011 Free Software Foundation, Inc. |
10704 | 3 |
4 This program is free software: you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 3 of the License, or | |
7 (at your option) any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ | |
16 | |
17 #include <config.h> | |
12487
8ba9831d54bf
Include header file being tested immediately after config.h.
Bruno Haible <bruno@clisp.org>
parents:
12421
diff
changeset
|
18 |
10704 | 19 #include <stdlib.h> |
12487
8ba9831d54bf
Include header file being tested immediately after config.h.
Bruno Haible <bruno@clisp.org>
parents:
12421
diff
changeset
|
20 |
12489 | 21 #include "signature.h" |
22 SIGNATURE_CHECK (srandom_r, int, (unsigned int, struct random_data *)); | |
23 SIGNATURE_CHECK (initstate_r, int, (unsigned int, char *, size_t, | |
24 struct random_data *)); | |
25 SIGNATURE_CHECK (setstate_r, int, (char *, struct random_data *)); | |
26 SIGNATURE_CHECK (random_r, int, (struct random_data *, int32_t *)); | |
27 | |
10704 | 28 #include <time.h> |
29 | |
12496
a48d3d749ca5
Refactor common macros used in tests.
Bruno Haible <bruno@clisp.org>
parents:
12489
diff
changeset
|
30 #include "macros.h" |
10704 | 31 |
32 int | |
33 main () | |
34 { | |
35 struct random_data rand_state; | |
36 char buf[128]; | |
37 unsigned int i; | |
38 unsigned int n_big = 0; | |
39 | |
40 rand_state.state = NULL; | |
41 if (initstate_r (time (NULL), buf, sizeof buf, &rand_state)) | |
42 return 1; | |
43 for (i = 0; i < 1000; i++) | |
44 { | |
45 int32_t r; | |
46 ASSERT (random_r (&rand_state, &r) == 0); | |
47 ASSERT (0 <= r); | |
48 if (RAND_MAX / 2 < r) | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
10704
diff
changeset
|
49 ++n_big; |
10704 | 50 } |
51 | |
52 /* Fail if none of the numbers were larger than RAND_MAX / 2. */ | |
53 return !n_big; | |
54 } |