unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: "Gabriel F. T. Gomes" <gabriel@inconstante.eti.br>
To: <libc-alpha@sourceware.org>
Subject: [PATCH v4 5/5] ldbl-opt: Reuse test cases from misc/ that check long double
Date: Thu, 21 Feb 2019 17:57:06 -0300	[thread overview]
Message-ID: <20190221205706.12225-6-gabriel@inconstante.eti.br> (raw)
In-Reply-To: <20190221205706.12225-1-gabriel@inconstante.eti.br>

No changes since v3.

No changes since v2.

No changes since v1.

-- 8< --
This patch adds test cases for the compatibility versions of the
functions: err, errx, verr, verrx, warn, warnx, vwarn, vwarnx (from
err.h), error, and error_at_line (from error.h), when long double has
the same format as double (-mlong-double-64).

Tested for powerpc64 and powerpc64le.

	* sysdeps/ieee754/ldbl-opt/Makefile
	[subdir == misc] (tests-internal): Add tst-nldbl-warn,
	tst-nldbl-error.
	(CFLAGS-tst-nldbl-warn.c, CFLAGS-tst-nldbl-error.c):
	New variables.
---
 misc/tst-ldbl-error.c             | 25 +++++++++++++------------
 misc/tst-ldbl-warn.c              | 20 ++++++++++++++------
 sysdeps/ieee754/ldbl-opt/Makefile | 16 ++++++++++++++++
 3 files changed, 43 insertions(+), 18 deletions(-)

diff --git a/misc/tst-ldbl-error.c b/misc/tst-ldbl-error.c
index d6609f7fe9..0f13fee9f3 100644
--- a/misc/tst-ldbl-error.c
+++ b/misc/tst-ldbl-error.c
@@ -85,14 +85,15 @@ do_one_test (void *callback, const char *expected, ...)
   /* Call 'callback', which fills in the output and error buffers.  */
   result = support_capture_subprocess (callback, NULL);
 
-  /* The functions err, errx, verr, and verrx print just the program
-     name followed by a colon, whereas error and error_at_line print the
-     whole path to the program.  Since the whole path depends on the
-     working directory used to build and test glibc, remove it from the
-     comparison against the expected result.  */
-  const char *needle = "tst-ldbl-error:";
+  /* Filter out the name of the program (which should always end with
+     -error), so that the test case can be reused by ldbl-opt and
+     ldbl-128ibm-compat.  */
+  const char *needle = "-error:";
   char *message;
   message = strstr (result.err.buffer, needle);
+  if (message == NULL)
+    FAIL_EXIT1 ("test case error");
+  message += strlen (needle);
 
   /* Verify that the output message is as expected.  */
   TEST_COMPARE_STRING (message, expected);
@@ -104,12 +105,12 @@ static int
 do_test (void)
 {
   struct tests tests[] = {
-    { &callback_err, "tst-ldbl-error: -1.000000: Success\n" },
-    { &callback_errx, "tst-ldbl-error: -1.000000\n" },
-    { &callback_verr, "tst-ldbl-error: -1.000000: Success\n" },
-    { &callback_verrx, "tst-ldbl-error: -1.000000\n" },
-    { &callback_error, "tst-ldbl-error: -1.000000\n" },
-    { &callback_error_at_line, "tst-ldbl-error::0: -1.000000\n" }
+    { &callback_err, " -1.000000: Success\n" },
+    { &callback_errx, " -1.000000\n" },
+    { &callback_verr, " -1.000000: Success\n" },
+    { &callback_verrx, " -1.000000\n" },
+    { &callback_error, " -1.000000\n" },
+    { &callback_error_at_line, ":0: -1.000000\n" }
   };
 
   for (int i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
diff --git a/misc/tst-ldbl-warn.c b/misc/tst-ldbl-warn.c
index 7d15b55db8..90375a97ea 100644
--- a/misc/tst-ldbl-warn.c
+++ b/misc/tst-ldbl-warn.c
@@ -59,9 +59,21 @@ do_one_test (int select, const char *format, va_list args,
 
   stderr = old_stderr;
 
-  /* Close the in-memory stream and check the output buffer.  */
+  /* Close the in-memory stream.  */
   xfclose_memstream (&stream);
-  TEST_COMPARE_STRING (stream.buffer, expected);
+
+  /* Filter out the name of the program (which should always end with
+     warn), so that the test case can be reused by ldbl-opt and
+     ldbl-128ibm-compat.  */
+  const char *needle = "warn: ";
+  char *message;
+  message = strstr (stream.buffer, needle);
+  if (message == NULL)
+    FAIL_EXIT1 ("test case error");
+  message += strlen (needle);
+
+  /* Check that the rest of the output is as expected.  */
+  TEST_COMPARE_STRING (message, expected);
 
   if (stream.buffer != NULL)
     free (stream.buffer);
@@ -74,13 +86,11 @@ do_test_call_varg (const char *format, ...)
 
   va_start (args, format);
   do_one_test (VWARN, format, args, 0, 0, 0, 0,
-	       "tst-ldbl-warn: "
 	       "-1.000000 - -2.000000 - -3.000000 - -4.000000: Success\n");
   va_end (args);
 
   va_start (args, format);
   do_one_test (VWARNX, format, args, 0, 0, 0, 0,
-	       "tst-ldbl-warn: "
 	       "-1.000000 - -2.000000 - -3.000000 - -4.000000\n");
   va_end (args);
 }
@@ -92,10 +102,8 @@ do_test_call_rarg (const char *format, long double arg1, double arg2,
   va_list args;
   memset (&args, 0, sizeof (args));
   do_one_test (WARN, format, args, arg1, arg2, arg3, arg4,
-	       "tst-ldbl-warn: "
 	       "-1.000000 - -2.000000 - -3.000000 - -4.000000: Success\n");
   do_one_test (WARNX, format, args, arg1, arg2, arg3, arg4,
-	       "tst-ldbl-warn: "
 	       "-1.000000 - -2.000000 - -3.000000 - -4.000000\n");
 }
 
diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile
index 8a2c129f5f..791a5eabd2 100644
--- a/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/sysdeps/ieee754/ldbl-opt/Makefile
@@ -189,3 +189,19 @@ $(objpfx)tst-nldbl-argp.c: tst-ldbl-argp.c
 
 CFLAGS-tst-nldbl-argp.c += -mlong-double-64
 endif
+
+# Tests for err.h and error.h functions (reusing the relevant tests from
+# misc/).
+ifeq ($(subdir), misc)
+tests-internal += tst-nldbl-warn
+tests-internal += tst-nldbl-error
+
+$(objpfx)tst-nldbl-warn.c: tst-ldbl-warn.c
+	cp $< $@
+
+$(objpfx)tst-nldbl-error.c: tst-ldbl-error.c
+	cp $< $@
+
+CFLAGS-tst-nldbl-warn.c += -mlong-double-64
+CFLAGS-tst-nldbl-error.c += -mlong-double-64
+endif
-- 
2.14.5


  parent reply	other threads:[~2019-02-21 20:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-21 20:57 [PATCH v4 0/5] Add missing nldbl functions to libc Gabriel F. T. Gomes
2019-02-21 20:57 ` [PATCH v4 1/5] ldbl-opt: Add arpg_error and argp_failure (bug 23983) Gabriel F. T. Gomes
2019-02-28 18:35   ` Joseph Myers
2019-02-21 20:57 ` [PATCH v4 2/5] ldbl-opt: Reuse argp tests that print long double Gabriel F. T. Gomes
2019-02-28 18:36   ` Joseph Myers
2019-02-21 20:57 ` [PATCH v4 3/5] ldbl-opt: Add err, errx, verr, verrx, warn, warnx, vwarn, and vwarnx (bug 23984) Gabriel F. T. Gomes
2019-02-28 18:38   ` Joseph Myers
2019-02-21 20:57 ` [PATCH v4 4/5] ldbl-opt: Add error and error_at_line " Gabriel F. T. Gomes
2019-02-28 18:40   ` Joseph Myers
2019-02-21 20:57 ` Gabriel F. T. Gomes [this message]
2019-02-28 18:41   ` [PATCH v4 5/5] ldbl-opt: Reuse test cases from misc/ that check long double Joseph Myers
2019-02-28 14:02 ` Ping. Re: [PATCH v4 0/5] Add missing nldbl functions to libc Gabriel F. T. Gomes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/libc/involved.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190221205706.12225-6-gabriel@inconstante.eti.br \
    --to=gabriel@inconstante.eti.br \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).