diff options
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/testdiv.c | 12 | ||||
-rw-r--r-- | stdlib/tst-strtod.c | 33 | ||||
-rw-r--r-- | stdlib/tst-strtol.c | 13 |
3 files changed, 36 insertions, 22 deletions
diff --git a/stdlib/testdiv.c b/stdlib/testdiv.c index a3ae5c9..9a5341c 100644 --- a/stdlib/testdiv.c +++ b/stdlib/testdiv.c @@ -22,11 +22,19 @@ int main (void) { + int err = 0; int i, j; while (scanf ("%d %d\n", &i, &j) == 2) { div_t d = div (i, j); - printf ("%d / %d = %d + %d/%d\n", i, j, d.quot, d.rem, j); + printf ("%d / %d = %d + %d/%d", i, j, d.quot, d.rem, j); + if (i == d.quot * j + d.rem) + fputs (" OK\n", stdout); + else + { + fputs (" FAILED\n", stdout); + err = 1; + } } - return 0; + return err; } diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c index a76529c..316fff9 100644 --- a/stdlib/tst-strtod.c +++ b/stdlib/tst-strtod.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -49,6 +49,7 @@ main (int argc, char ** argv) register const struct ltest *lt; char *ep; int status = 0; + int save_errno; for (lt = tests; lt->str != NULL; ++lt) { @@ -56,30 +57,32 @@ main (int argc, char ** argv) errno = 0; d = strtod(lt->str, &ep); - printf("strtod(\"%s\") test %u", + save_errno = errno; + printf ("strtod (\"%s\") test %u", lt->str, (unsigned int) (lt - tests)); - if (d == lt->expect && *ep == lt->left && errno == lt->err) - puts("\tOK"); + if (d == lt->expect && *ep == lt->left && save_errno == lt->err) + puts ("\tOK"); else { - puts("\tBAD"); + puts ("\tBAD"); if (d != lt->expect) - printf(" returns %.60g, expected %.60g\n", d, lt->expect); + printf (" returns %.60g, expected %.60g\n", d, lt->expect); if (lt->left != *ep) { char exp1[5], exp2[5]; - expand(exp1, *ep); - expand(exp2, lt->left); - printf(" leaves '%s', expected '%s'\n", exp1, exp2); + expand (exp1, *ep); + expand (exp2, lt->left); + printf (" leaves '%s', expected '%s'\n", exp1, exp2); } - if (errno != lt->err) - printf(" errno %d (%s) instead of %d (%s)\n", - errno, strerror(errno), lt->err, strerror(lt->err)); + if (save_errno != lt->err) + printf (" errno %d (%s) instead of %d (%s)\n", + save_errno, strerror (save_errno), + lt->err, strerror (lt->err)); status = 1; } } - exit(status ? EXIT_FAILURE : EXIT_SUCCESS); + exit (status ? EXIT_FAILURE : EXIT_SUCCESS); } static void @@ -87,11 +90,11 @@ expand (dst, c) char *dst; register int c; { - if (isprint(c)) + if (isprint (c)) { dst[0] = c; dst[1] = '\0'; } else - (void) sprintf(dst, "%#.3o", (unsigned int) c); + (void) sprintf (dst, "%#.3o", (unsigned int) c); } diff --git a/stdlib/tst-strtol.c b/stdlib/tst-strtol.c index 0857871..1328691 100644 --- a/stdlib/tst-strtol.c +++ b/stdlib/tst-strtol.c @@ -106,9 +106,10 @@ main (int argc, char ** argv) expand (exp2, lt->left); printf (" leaves '%s', expected '%s'\n", exp1, exp2); } - if (errno != lt->err) + if (save_errno != lt->err) printf (" errno %d (%s) instead of %d (%s)\n", - errno, strerror (errno), lt->err, strerror (lt->err)); + save_errno, strerror (save_errno), + lt->err, strerror (lt->err)); status = 1; } } @@ -119,9 +120,10 @@ main (int argc, char ** argv) errno = 0; ul = strtoul (lt->str, &ep, lt->base); + save_errno = errno; printf ("strtoul(\"%s\", , %d) test %u", lt->str, lt->base, (unsigned int) (lt - tests)); - if (ul == lt->expect && *ep == lt->left && errno == lt->err) + if (ul == lt->expect && *ep == lt->left && save_errno == lt->err) puts("\tOK"); else { @@ -136,9 +138,10 @@ main (int argc, char ** argv) expand (exp2, lt->left); printf (" leaves '%s', expected '%s'\n", exp1, exp2); } - if (errno != lt->err) + if (save_errno != lt->err) printf (" errno %d (%s) instead of %d (%s)\n", - errno, strerror (errno), lt->err, strerror (lt->err)); + save_errno, strerror (save_errno), + lt->err, strerror (lt->err)); status = 1; } } |