| Index: gcc/gmp/tests/mpz/t-inp_str.c
|
| diff --git a/gcc/gmp/tests/mpz/t-inp_str.c b/gcc/gmp/tests/mpz/t-inp_str.c
|
| deleted file mode 100644
|
| index 7c0893752be248aedd642ddc5cc43f3f8febc6e8..0000000000000000000000000000000000000000
|
| --- a/gcc/gmp/tests/mpz/t-inp_str.c
|
| +++ /dev/null
|
| @@ -1,188 +0,0 @@
|
| -/* Test mpz_inp_str.
|
| -
|
| -Copyright 2001, 2002 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> /* for unlink */
|
| -#endif
|
| -
|
| -#include "gmp.h"
|
| -#include "gmp-impl.h"
|
| -#include "tests.h"
|
| -
|
| -
|
| -#define FILENAME "t-inp_str.tmp"
|
| -
|
| -
|
| -void
|
| -check_data (void)
|
| -{
|
| - static const struct {
|
| - const char *inp;
|
| - int base;
|
| - const char *want;
|
| - int want_nread;
|
| -
|
| - } data[] = {
|
| -
|
| - { "0", 10, "0", 1 },
|
| -
|
| - { "abc", 10, "0", 0 },
|
| - { "ghi", 16, "0", 0 },
|
| -
|
| - { "ff", 16, "255", 2 },
|
| - { "-ff", 16, "-255", 3 },
|
| - { "FF", 16, "255", 2 },
|
| - { "-FF", 16, "-255", 3 },
|
| -
|
| - { "z", 36, "35", 1 },
|
| - { "Z", 36, "35", 1 },
|
| -
|
| - { "0x0", 0, "0", 3 },
|
| - { "0x10", 0, "16", 4 },
|
| - { "-0x0", 0, "0", 4 },
|
| - { "-0x10", 0, "-16", 5 },
|
| -
|
| - { "00", 0, "0", 2 },
|
| - { "010", 0, "8", 3 },
|
| - { "-00", 0, "0", 3 },
|
| - { "-010", 0, "-8", 4 },
|
| -
|
| - { "0x", 0, "0", 2 },
|
| - { "0", 0, "0", 1 },
|
| - };
|
| -
|
| - mpz_t got, want;
|
| - long ftell_nread;
|
| - int i, pre, post, j, got_nread, want_nread;
|
| - FILE *fp;
|
| -
|
| - mpz_init (got);
|
| - mpz_init (want);
|
| -
|
| - for (i = 0; i < numberof (data); i++)
|
| - {
|
| - for (pre = 0; pre <= 3; pre++)
|
| - {
|
| - for (post = 0; post <= 2; post++)
|
| - {
|
| - mpz_set_str_or_abort (want, data[i].want, 0);
|
| - MPZ_CHECK_FORMAT (want);
|
| -
|
| - /* create the file new each time to ensure its length is what
|
| - we want */
|
| - fp = fopen (FILENAME, "w+");
|
| - ASSERT_ALWAYS (fp != NULL);
|
| - for (j = 0; j < pre; j++)
|
| - putc (' ', fp);
|
| - fputs (data[i].inp, fp);
|
| - for (j = 0; j < post; j++)
|
| - putc (' ', fp);
|
| - fflush (fp);
|
| - ASSERT_ALWAYS (! ferror(fp));
|
| -
|
| - rewind (fp);
|
| - got_nread = mpz_inp_str (got, fp, data[i].base);
|
| -
|
| - if (got_nread != 0)
|
| - {
|
| - ftell_nread = ftell (fp);
|
| - if (got_nread != ftell_nread)
|
| - {
|
| - printf ("mpz_inp_str nread wrong\n");
|
| - printf (" inp \"%s\"\n", data[i].inp);
|
| - printf (" base %d\n", data[i].base);
|
| - printf (" pre %d\n", pre);
|
| - printf (" post %d\n", post);
|
| - printf (" got_nread %d\n", got_nread);
|
| - printf (" ftell_nread %ld\n", ftell_nread);
|
| - abort ();
|
| - }
|
| - }
|
| -
|
| - /* if data[i].inp is a whole string to read and there's no post
|
| - whitespace then expect to have EOF */
|
| - if (post == 0 && data[i].want_nread == strlen(data[i].inp))
|
| - {
|
| - int c = getc(fp);
|
| - if (c != EOF)
|
| - {
|
| - printf ("mpz_inp_str didn't read to EOF\n");
|
| - printf (" inp \"%s\"\n", data[i].inp);
|
| - printf (" base %d\n", data[i].base);
|
| - printf (" pre %d\n", pre);
|
| - printf (" post %d\n", post);
|
| - printf (" c '%c' %#x\n", c, c);
|
| - abort ();
|
| - }
|
| - }
|
| -
|
| - /* only expect "pre" included in the count when non-zero */
|
| - want_nread = data[i].want_nread;
|
| - if (want_nread != 0)
|
| - want_nread += pre;
|
| -
|
| - if (got_nread != want_nread)
|
| - {
|
| - printf ("mpz_inp_str nread wrong\n");
|
| - printf (" inp \"%s\"\n", data[i].inp);
|
| - printf (" base %d\n", data[i].base);
|
| - printf (" pre %d\n", pre);
|
| - printf (" post %d\n", post);
|
| - printf (" got_nread %d\n", got_nread);
|
| - printf (" want_nread %d\n", want_nread);
|
| - abort ();
|
| - }
|
| -
|
| - MPZ_CHECK_FORMAT (got);
|
| -
|
| - if (mpz_cmp (got, want) != 0)
|
| - {
|
| - printf ("mpz_inp_str wrong result\n");
|
| - printf (" inp \"%s\"\n", data[i].inp);
|
| - printf (" base %d\n", data[i].base);
|
| - mpz_trace (" got ", got);
|
| - mpz_trace (" want", want);
|
| - abort ();
|
| - }
|
| -
|
| - ASSERT_ALWAYS (fclose (fp) == 0);
|
| - }
|
| - }
|
| - }
|
| -
|
| - mpz_clear (got);
|
| - mpz_clear (want);
|
| -}
|
| -
|
| -int
|
| -main (void)
|
| -{
|
| - tests_start ();
|
| -
|
| - check_data ();
|
| -
|
| - unlink (FILENAME);
|
| - tests_end ();
|
| - exit (0);
|
| -}
|
|
|