summaryrefslogtreecommitdiff
path: root/stdio-common
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-02-14 20:03:55 +0000
committerUlrich Drepper <drepper@redhat.com>1999-02-14 20:03:55 +0000
commitb119507013bc4cdc19011f2b3e8e4e7e7a3bb9d9 (patch)
tree4ef33706ab550ca96fb0e3f0d1a3798e22bfbc3f /stdio-common
parent2c7311525411098608af7f2d597ab45bb32af717 (diff)
downloadglibc-b119507013bc4cdc19011f2b3e8e4e7e7a3bb9d9.tar.gz
Update.
1999-02-14 Andreas Jaeger <aj@arthur.rhein-neckar.de> * stdio-common/Makefile (tests): tllformat added. * stdio-common/tllformat.c: New program, based on tiformat.c with examples from Franz Sirl <Franz.Sirl-kernel@lauterbach.com>. 1999-02-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * posix/test-vfork.c: Fix exit status test. 1999-02-14 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/sa_len.c (__libc_sa_len): Add some missing cases. Reported by Craig Metz <cmetz@inner.net> [PR libc/964]. 1999-02-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
Diffstat (limited to 'stdio-common')
-rw-r--r--stdio-common/Makefile2
-rw-r--r--stdio-common/tllformat.c59
2 files changed, 60 insertions, 1 deletions
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index 287f7c566a..9fb0c5d15d 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -47,7 +47,7 @@ tests := tst-printf tstscanf test_rdwr test-popen tstgetln test-fseek \
temptest tst-fileno test-fwrite tst-ungetc tst-ferror \
xbug errnobug \
bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 bug12 \
- tfformat tiformat tstdiomisc tst-printfsz tst-wc-printf \
+ tfformat tiformat tllformat tstdiomisc tst-printfsz tst-wc-printf \
scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \
scanf12 tst-tmpnam
diff --git a/stdio-common/tllformat.c b/stdio-common/tllformat.c
new file mode 100644
index 0000000000..b53b825836
--- /dev/null
+++ b/stdio-common/tllformat.c
@@ -0,0 +1,59 @@
+#include <stdio.h>
+#include <string.h>
+
+/* The original file was tiformat.c and it has been changed for long long tests\
+. */
+typedef struct
+{
+ int line;
+ long long int value;
+ const char *result;
+ const char *format_string;
+} sprint_int_type;
+
+sprint_int_type sprint_ints[] =
+{
+ {__LINE__, 0x00000000ULL, "0", "%llx"},
+ {__LINE__, 0xffff00000000208bULL, "ffff00000000208b", "%llx"},
+ {__LINE__, 0xffff00000000208bULL, "18446462598732849291", "%llu"},
+ {__LINE__, 18446462598732849291ULL, "ffff00000000208b", "%llx"},
+ {__LINE__, 18446462598732849291ULL, "18446462598732849291", "%llu"},
+ {__LINE__, 18359476226655002763ULL, "fec9f65b0000208b", "%llx"},
+ {__LINE__, 18359476226655002763ULL, "18359476226655002763", "%llu"},
+
+ {0},
+};
+
+int
+main (void)
+{
+ int errcount = 0;
+ int testcount = 0;
+#define BSIZE 1024
+ char buffer[BSIZE];
+ sprint_int_type *iptr;
+ for (iptr = sprint_ints; iptr->line; iptr++)
+ {
+ sprintf (buffer, iptr->format_string, iptr->value);
+ if (strcmp (buffer, iptr->result) != 0)
+ {
+ ++errcount;
+ printf ("\
+Error in line %d using \"%s\". Result is \"%s\"; should be: \"%s\".\n",
+ iptr->line, iptr->format_string, buffer, iptr->result);
+ }
+ ++testcount;
+ }
+
+ if (errcount == 0)
+ {
+ printf ("Encountered no errors in %d tests.\n", testcount);
+ return 0;
+ }
+ else
+ {
+ printf ("Encountered %d errors in %d tests.\n",
+ errcount, testcount);
+ return 1;
+ }
+}