From patchwork Mon Dec 17 22:14:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Gabriel F. T. Gomes" X-Patchwork-Id: 30713 Received: (qmail 73679 invoked by alias); 17 Dec 2018 22:15:05 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 73361 invoked by uid 89); 17 Dec 2018 22:15:03 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=Close, 4000000, 599 X-HELO: mo20.mail-out.ovh.net From: "Gabriel F. T. Gomes" To: Subject: [PATCH v2 5/5] ldbl-opt: Reuse test cases from misc/ that check long double Date: Mon, 17 Dec 2018 20:14:18 -0200 Message-ID: <20181217221418.30949-6-gabriel@inconstante.eti.br> In-Reply-To: <20181217221418.30949-1-gabriel@inconstante.eti.br> References: <20181217221418.30949-1-gabriel@inconstante.eti.br> MIME-Version: 1.0 X-Ovh-Tracer-Id: 2297117288296402627 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtkedrudeifedgieelucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenuc 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 76b2c8f784..37ac9b65db 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 69a528755c..f452d34f24 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