Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Unified Diff: gcc/gmp/tests/mpz/t-io_raw.c

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gcc/gmp/tests/mpz/t-inp_str.c ('k') | gcc/gmp/tests/mpz/t-mul.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gcc/gmp/tests/mpz/t-io_raw.c
diff --git a/gcc/gmp/tests/mpz/t-io_raw.c b/gcc/gmp/tests/mpz/t-io_raw.c
deleted file mode 100644
index 4fd71e4be1c10b2ec1f0146f1305981167693fce..0000000000000000000000000000000000000000
--- a/gcc/gmp/tests/mpz/t-io_raw.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/* Test mpz_inp_raw and mpz_out_raw.
-
-Copyright 2001 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library 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 3 of the License, or (at your
-option) any later version.
-
-The GNU MP Library 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 the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include "gmp.h"
-#include "gmp-impl.h"
-#include "tests.h"
-
-#define FILENAME "t-io_raw.tmp"
-
-
-/* In the fopen, "b" selects binary mode on DOS systems, meaning no
- conversion of '\n' to and from CRLF. It's believed systems without such
- nonsense will simply ignore the "b", but in case that's not so a plain
- "w+" is attempted if "w+b" fails. */
-
-FILE *
-fopen_wplusb_or_die (const char *filename)
-{
- FILE *fp;
- fp = fopen (filename, "w+b");
- if (fp == NULL)
- fp = fopen (filename, "w+");
-
- if (fp == NULL)
- {
- printf ("Cannot create file %s\n", filename);
- abort ();
- }
- return fp;
-}
-
-/* use 0x80 to check nothing bad happens with sign extension etc */
-#define BYTEVAL(i) (((i) + 1) | 0x80)
-
-void
-check_in (void)
-{
- int i, j, zeros, neg, error = 0;
- mpz_t want, got;
- size_t want_ret, got_ret;
- mp_size_t size;
- FILE *fp;
-
- mpz_init (want);
- mpz_init (got);
-
- for (i = 0; i < 32; i++)
- {
- for (zeros = 0; zeros < 8; zeros++)
- {
- for (neg = 0; neg <= 1; neg++)
- {
- want_ret = i + zeros + 4;
-
- /* need this to get the twos complement right */
- ASSERT_ALWAYS (sizeof (size) >= 4);
-
- size = i + zeros;
- if (neg)
- size = -size;
-
- fp = fopen_wplusb_or_die (FILENAME);
- for (j = 3; j >= 0; j--)
- ASSERT_ALWAYS (putc ((size >> (j*8)) & 0xFF, fp) != EOF);
- for (j = 0; j < zeros; j++)
- ASSERT_ALWAYS (putc ('\0', fp) != EOF);
- for (j = 0; j < i; j++)
- ASSERT_ALWAYS (putc (BYTEVAL (j), fp) != EOF);
- /* and some trailing garbage */
- ASSERT_ALWAYS (putc ('x', fp) != EOF);
- ASSERT_ALWAYS (putc ('y', fp) != EOF);
- ASSERT_ALWAYS (putc ('z', fp) != EOF);
- ASSERT_ALWAYS (fflush (fp) == 0);
- rewind (fp);
-
- got_ret = mpz_inp_raw (got, fp);
- ASSERT_ALWAYS (! ferror(fp));
- ASSERT_ALWAYS (fclose (fp) == 0);
-
- MPZ_CHECK_FORMAT (got);
-
- if (got_ret != want_ret)
- {
- printf ("check_in: return value wrong\n");
- error = 1;
- }
- if (mpz_cmp (got, want) != 0)
- {
- printf ("check_in: result wrong\n");
- error = 1;
- }
- if (error)
- {
- printf (" i=%d zeros=%d neg=%d\n", i, zeros, neg);
- printf (" got_ret %lu\n", (unsigned long) got_ret);
- printf (" want_ret %lu\n", (unsigned long) want_ret);
- mpz_trace (" got ", got);
- mpz_trace (" want ", want);
- abort ();
- }
-
- mpz_neg (want, want);
- }
- }
- mpz_mul_2exp (want, want, 8);
- mpz_add_ui (want, want, (unsigned long) BYTEVAL (i));
- }
-
- mpz_clear (want);
- mpz_clear (got);
-}
-
-
-void
-check_out (void)
-{
- int i, j, neg, error = 0;
- mpz_t z;
- char want[256], got[256], *p;
- size_t want_len, got_ret, got_read;
- mp_size_t size;
- FILE *fp;
-
- mpz_init (z);
-
- for (i = 0; i < 32; i++)
- {
- for (neg = 0; neg <= 1; neg++)
- {
- want_len = i + 4;
-
- /* need this to get the twos complement right */
- ASSERT_ALWAYS (sizeof (size) >= 4);
-
- size = i;
- if (neg)
- size = -size;
-
- p = want;
- for (j = 3; j >= 0; j--)
- *p++ = size >> (j*8);
- for (j = 0; j < i; j++)
- *p++ = BYTEVAL (j);
- ASSERT_ALWAYS (p <= want + sizeof (want));
-
- fp = fopen_wplusb_or_die (FILENAME);
- got_ret = mpz_out_raw (fp, z);
- ASSERT_ALWAYS (fflush (fp) == 0);
- rewind (fp);
- got_read = fread (got, 1, sizeof(got), fp);
- ASSERT_ALWAYS (! ferror(fp));
- ASSERT_ALWAYS (fclose (fp) == 0);
-
- if (got_ret != want_len)
- {
- printf ("check_out: wrong return value\n");
- error = 1;
- }
- if (got_read != want_len)
- {
- printf ("check_out: wrong number of bytes read back\n");
- error = 1;
- }
- if (memcmp (want, got, want_len) != 0)
- {
- printf ("check_out: wrong data\n");
- error = 1;
- }
- if (error)
- {
- printf (" i=%d neg=%d\n", i, neg);
- mpz_trace (" z", z);
- printf (" got_ret %lu\n", (unsigned long) got_ret);
- printf (" got_read %lu\n", (unsigned long) got_read);
- printf (" want_len %lu\n", (unsigned long) want_len);
- printf (" want");
- for (j = 0; j < want_len; j++)
- printf (" %02X", (unsigned) (unsigned char) want[j]);
- printf ("\n");
- printf (" got ");
- for (j = 0; j < want_len; j++)
- printf (" %02X", (unsigned) (unsigned char) got[j]);
- printf ("\n");
- abort ();
- }
-
- mpz_neg (z, z);
- }
- mpz_mul_2exp (z, z, 8);
- mpz_add_ui (z, z, (unsigned long) BYTEVAL (i));
- }
-
- mpz_clear (z);
-}
-
-
-void
-check_rand (void)
-{
- gmp_randstate_ptr rands = RANDS;
- int i, error = 0;
- mpz_t got, want;
- size_t inp_ret, out_ret;
- FILE *fp;
-
- mpz_init (want);
- mpz_init (got);
-
- for (i = 0; i < 500; i++)
- {
- mpz_erandomb (want, rands, 10*BITS_PER_MP_LIMB);
- mpz_negrandom (want, rands);
-
- fp = fopen_wplusb_or_die (FILENAME);
- out_ret = mpz_out_raw (fp, want);
- ASSERT_ALWAYS (fflush (fp) == 0);
- rewind (fp);
- inp_ret = mpz_inp_raw (got, fp);
- ASSERT_ALWAYS (fclose (fp) == 0);
-
- MPZ_CHECK_FORMAT (got);
-
- if (inp_ret != out_ret)
- {
- printf ("check_rand: different inp/out return values\n");
- error = 1;
- }
- if (mpz_cmp (got, want) != 0)
- {
- printf ("check_rand: wrong result\n");
- error = 1;
- }
- if (error)
- {
- printf (" out_ret %lu\n", (unsigned long) out_ret);
- printf (" inp_ret %lu\n", (unsigned long) inp_ret);
- mpz_trace (" want", want);
- mpz_trace (" got ", got);
- abort ();
- }
- }
-
- mpz_clear (got);
- mpz_clear (want);
-}
-
-
-int
-main (void)
-{
- tests_start ();
- mp_trace_base = -16;
-
- check_in ();
- check_out ();
- check_rand ();
-
- unlink (FILENAME);
- tests_end ();
-
- exit (0);
-}
« no previous file with comments | « gcc/gmp/tests/mpz/t-inp_str.c ('k') | gcc/gmp/tests/mpz/t-mul.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698