about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--posix/test-vfork.c2
-rw-r--r--stdio-common/Makefile2
-rw-r--r--stdio-common/tllformat.c59
4 files changed, 78 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index e883ffb7dd..23b6bc1ef1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,20 @@
-Sun Feb 14 01:49:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+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>
 
 	* sysdeps/m68k/fpu/s_modf.c: Optimized by using __m81_test instead
 	of separare explicit comparisons.
diff --git a/posix/test-vfork.c b/posix/test-vfork.c
index 959dcb3b01..2abeb5ae14 100644
--- a/posix/test-vfork.c
+++ b/posix/test-vfork.c
@@ -29,7 +29,7 @@ main (void)
     error (1, errno, "vfork");
   printf ("After vfork (parent)\n");
   if (waitpid (0, &status, 0) != pid
-      || !WIFEXITED (status) || WEXITSTATUS (NR))
+      || !WIFEXITED (status) || WEXITSTATUS (status) != NR)
     exit (1);
   exit (0);
 }
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;
+    }
+}