Annotation of OpenXM_contrib/gmp/tests/mpbsd/t-mtox.c, Revision 1.1.1.1
1.1 ohara 1: /* Test mtox.
2:
3: Copyright 2002 Free Software Foundation, Inc.
4:
5: This file is part of the GNU MP Library.
6:
7: The GNU MP Library is free software; you can redistribute it and/or modify
8: it under the terms of the GNU Lesser General Public License as published by
9: the Free Software Foundation; either version 2.1 of the License, or (at your
10: option) any later version.
11:
12: The GNU MP Library is distributed in the hope that it will be useful, but
13: WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14: or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15: License for more details.
16:
17: You should have received a copy of the GNU Lesser General Public License
18: along with the GNU MP Library; see the file COPYING.LIB. If not, write to
19: the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
20: MA 02111-1307, USA. */
21:
22: #include <stdio.h>
23: #include <stdlib.h>
24: #include "gmp.h"
25: #include "gmp-impl.h"
26: #include "mp.h"
27: #include "tests.h"
28:
29:
30: void
31: check_random (void)
32: {
33: mpz_t z;
34: int i;
35: char *got, *want;
36: gmp_randstate_ptr rands = RANDS;
37:
38: mpz_init (z);
39:
40: for (i = 0; i < 1000; i++)
41: {
42: mpz_erandomb (z, rands, 6 * BITS_PER_MP_LIMB);
43: got = mtox (z);
44: want = mpz_get_str (NULL, 16, z);
45: if (strcmp (got, want) != 0)
46: {
47: printf ("mtox wrong result\n");
48: printf (" got \"%s\"\n", got);
49: printf (" want \"%s\"\n", want);
50: abort ();
51: }
52: (*__gmp_free_func) (got, strlen (got) + 1);
53: (*__gmp_free_func) (want, strlen (want) + 1);
54: }
55:
56: mpz_clear (z);
57: }
58:
59: void
60: check_mem (void)
61: {
62: MINT *m;
63: char *s;
64:
65: m = itom (0);
66: s = mtox (m);
67: if (! tests_memory_valid (s))
68: {
69: printf ("Skipping t-mtox, cannot test libgmp and libmp memory together\n");
70: exit (0);
71: }
72: mfree (m);
73: (*__gmp_free_func) (s, strlen (s) + 1);
74: }
75:
76:
77: int
78: main (void)
79: {
80: tests_start ();
81:
82: check_mem ();
83: check_random ();
84:
85: tests_end ();
86: exit (0);
87: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>