From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-3.8 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 7096F1F47C for ; Sat, 28 Jan 2023 17:53:30 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=clisp.org header.i=@clisp.org header.a=rsa-sha256 header.s=strato-dkim-0002 header.b=HCHRJSzv; dkim-atps=neutral Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pLpO4-0002dF-CR; Sat, 28 Jan 2023 12:53:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pLpO2-0002cN-I6 for bug-gnulib@gnu.org; Sat, 28 Jan 2023 12:53:10 -0500 Received: from mo4-p00-ob.smtp.rzone.de ([85.215.255.22]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pLpNx-0003jx-VE for bug-gnulib@gnu.org; Sat, 28 Jan 2023 12:53:09 -0500 ARC-Seal: i=1; a=rsa-sha256; t=1674928382; cv=none; d=strato.com; s=strato-dkim-0002; b=deHVUzaZJLLwWAy4d6Ll5cLJry7ugPY0+f6nkvya8qPwK59usQ7FaXn+V+SGgZy3kE 604+/zXJ6UYl9rYmSs+HfkQzN9krev1F1ujsikSbyZmqiIa+WQkkkgVm9NYtxuQFb7+3 7pHqKEQIh3bQmuxqezNReZ4ENEuAZOJbJ1p8VghvOVjXiVKharC1GzfZVk5rDamYiO5g Z+0YXjYEyH4FZsu94AfnQMHQZWiHnFUIQBaVAowDBmSXBk24DGw0zs8Ub3XeSU1nehQQ x39OtDRposEWb7C2ZcWyWslJ/hSlCFGNzC724EUiUpsqkwAXnbRbjg06YIz/asbv8ZEq m9nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1674928382; s=strato-dkim-0002; d=strato.com; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=R5rpL6XVa0Bh6q6faWDv5Pzw5ZRRwKXoXCHZthhTwxU=; b=kZ3L//fidzkvHpDHDorGmB75osS3d5umsVjEtboQxKHKpoX3iLS0XFCRgughiAlRLF E5dVqMa2/oz8eQVOoq3IrET2/4k43VQDW3v2qfKHHa7EQcsphJRcUspNpOIfd+OaK+lf FyeUeYQil2MLt2rW5OS90+Lz0nROCAUj2hzAgvqccN/y0bfIpBL4tx7XKrGOlDWvRR8k QmxSdRQTynsdD5lU2hC7eP/nK/JbWVU7laowX3zZutCaPlrw5i1XfX9FoInge8bj1H4u zhXD5LaUtxXpBJKJwIHHX45eiEYxgSDT6Jr8rOYcAGFQ/E8SnTxZhstfBf7eQUomA4gL JQcg== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1674928382; s=strato-dkim-0002; d=clisp.org; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=R5rpL6XVa0Bh6q6faWDv5Pzw5ZRRwKXoXCHZthhTwxU=; b=HCHRJSzvRylc8tG+oKEOz/Lu3e264sGGohh28/uJTUNrDKCJPbQM8f0AVnOgFxoK9K c2yuEZfbeZpi5FDzvEdvQYnoiMD4C+wwi3tAgqnuVC+wLPxvGhtbxAYpF2owmsGt25vL hOobEX1DaUVm8Kk4bzEcTnW6KJNj8xdoPSUbbIG/MExVT3OMBd6CpHmOEwFCIBx5zajy xzucbvMAVql4iRePpcAxEofql3T7aT2fE8O9DXdb1IUVQyoo11lEvB35YcrsEzCVvgN5 mJi18s91Yf+pd03SS62PXOGcGtRBNqDPkt8S8L7R6wWqnEiyje9W33bxo9wvBUwo7dpR d0Aw== X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zq68+3cfpPDjvwA7022TV+YfjovfFy3RIl4" Received: from nimes.localnet by smtp.strato.de (RZmta 49.2.2 AUTH) with ESMTPSA id 098542z0SHr2NXm (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Sat, 28 Jan 2023 18:53:02 +0100 (CET) From: Bruno Haible To: bug-gnulib@gnu.org Subject: vasnprintf-posix: Add more unit tests Date: Sat, 28 Jan 2023 18:53:01 +0100 Message-ID: <2376235.i4v7FFZKRz@nimes> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Received-SPF: none client-ip=85.215.255.22; envelope-from=bruno@clisp.org; helo=mo4-p00-ob.smtp.rzone.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Let me add some more unit tests. 2023-01-28 Bruno Haible vasnprintf-posix: Add more unit tests. * tests/test-vasnprintf-posix.c (test_function): Add tests for width given as argument for the directives %a, %f, %e, %g. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. diff --git a/tests/test-snprintf-posix.h b/tests/test-snprintf-posix.h index a69abb5622..42662a498e 100644 --- a/tests/test-snprintf-posix.h +++ b/tests/test-snprintf-posix.h @@ -277,6 +277,26 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_snprintf (result, sizeof (result), "%*a %d", 10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, " 0x1.cp+0 33") == 0 + || strcmp (result, " 0x3.8p-1 33") == 0 + || strcmp (result, " 0x7p-2 33") == 0 + || strcmp (result, " 0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_snprintf (result, sizeof (result), "%*a %d", -10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, "0x1.cp+0 33") == 0 + || strcmp (result, "0x3.8p-1 33") == 0 + || strcmp (result, "0x7p-2 33") == 0 + || strcmp (result, "0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* Small precision. */ int retval = my_snprintf (result, sizeof (result), "%.10a %d", 1.75, 33, 44, 55); @@ -581,6 +601,26 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_snprintf (result, sizeof (result), "%*La %d", 10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, " 0x1.cp+0 33") == 0 + || strcmp (result, " 0x3.8p-1 33") == 0 + || strcmp (result, " 0x7p-2 33") == 0 + || strcmp (result, " 0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_snprintf (result, sizeof (result), "%*La %d", -10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, "0x1.cp+0 33") == 0 + || strcmp (result, "0x3.8p-1 33") == 0 + || strcmp (result, "0x7p-2 33") == 0 + || strcmp (result, "0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* Small precision. */ int retval = my_snprintf (result, sizeof (result), "%.10La %d", 1.75L, 33, 44, 55); @@ -839,6 +879,20 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_snprintf (result, sizeof (result), "%*f %d", 10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, " 1.750000 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_snprintf (result, sizeof (result), "%*f %d", -10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, "1.750000 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_snprintf (result, sizeof (result), "%-10f %d", 1.75, 33, 44, 55); @@ -1139,6 +1193,20 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_snprintf (result, sizeof (result), "%*Lf %d", 10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, " 1.750000 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_snprintf (result, sizeof (result), "%*Lf %d", -10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, "1.750000 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_snprintf (result, sizeof (result), "%-10Lf %d", 1.75L, 33, 44, 55); @@ -1587,6 +1655,22 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_snprintf (result, sizeof (result), "%*e %d", 15, 1.75, 33, 44, 55); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_snprintf (result, sizeof (result), "%*e %d", -15, 1.75, 33, 44, 55); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_snprintf (result, sizeof (result), "%-15e %d", 1.75, 33, 44, 55); @@ -1918,6 +2002,22 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_snprintf (result, sizeof (result), "%*Le %d", 15, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_snprintf (result, sizeof (result), "%*Le %d", -15, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_snprintf (result, sizeof (result), "%-15Le %d", 1.75L, 33, 44, 55); @@ -2183,6 +2283,20 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_snprintf (result, sizeof (result), "%*g %d", 10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, " 1.75 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_snprintf (result, sizeof (result), "%*g %d", -10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, "1.75 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_snprintf (result, sizeof (result), "%-10g %d", 1.75, 33, 44, 55); @@ -2502,6 +2616,20 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_snprintf (result, sizeof (result), "%*Lg %d", 10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, " 1.75 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_snprintf (result, sizeof (result), "%*Lg %d", -10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, "1.75 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_snprintf (result, sizeof (result), "%-10Lg %d", 1.75L, 33, 44, 55); diff --git a/tests/test-sprintf-posix.h b/tests/test-sprintf-posix.h index 62d2b4ed56..3b54cabd64 100644 --- a/tests/test-sprintf-posix.h +++ b/tests/test-sprintf-posix.h @@ -263,6 +263,26 @@ test_function (int (*my_sprintf) (char *, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_sprintf (result, "%*a %d", 10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, " 0x1.cp+0 33") == 0 + || strcmp (result, " 0x3.8p-1 33") == 0 + || strcmp (result, " 0x7p-2 33") == 0 + || strcmp (result, " 0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_sprintf (result, "%*a %d", -10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, "0x1.cp+0 33") == 0 + || strcmp (result, "0x3.8p-1 33") == 0 + || strcmp (result, "0x7p-2 33") == 0 + || strcmp (result, "0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* Small precision. */ int retval = my_sprintf (result, "%.10a %d", 1.75, 33, 44, 55); @@ -567,6 +587,26 @@ test_function (int (*my_sprintf) (char *, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_sprintf (result, "%*La %d", 10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, " 0x1.cp+0 33") == 0 + || strcmp (result, " 0x3.8p-1 33") == 0 + || strcmp (result, " 0x7p-2 33") == 0 + || strcmp (result, " 0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_sprintf (result, "%*La %d", -10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, "0x1.cp+0 33") == 0 + || strcmp (result, "0x3.8p-1 33") == 0 + || strcmp (result, "0x7p-2 33") == 0 + || strcmp (result, "0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* Small precision. */ int retval = my_sprintf (result, "%.10La %d", 1.75L, 33, 44, 55); @@ -825,6 +865,20 @@ test_function (int (*my_sprintf) (char *, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_sprintf (result, "%*f %d", 10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, " 1.750000 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_sprintf (result, "%*f %d", -10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, "1.750000 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_sprintf (result, "%-10f %d", 1.75, 33, 44, 55); @@ -1125,6 +1179,20 @@ test_function (int (*my_sprintf) (char *, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_sprintf (result, "%*Lf %d", 10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, " 1.750000 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_sprintf (result, "%*Lf %d", -10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, "1.750000 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_sprintf (result, "%-10Lf %d", 1.75L, 33, 44, 55); @@ -1573,6 +1641,22 @@ test_function (int (*my_sprintf) (char *, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_sprintf (result, "%*e %d", 15, 1.75, 33, 44, 55); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_sprintf (result, "%*e %d", -15, 1.75, 33, 44, 55); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_sprintf (result, "%-15e %d", 1.75, 33, 44, 55); @@ -1904,6 +1988,22 @@ test_function (int (*my_sprintf) (char *, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_sprintf (result, "%*Le %d", 15, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_sprintf (result, "%*Le %d", -15, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_sprintf (result, "%-15Le %d", 1.75L, 33, 44, 55); @@ -2169,6 +2269,20 @@ test_function (int (*my_sprintf) (char *, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_sprintf (result, "%*g %d", 10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, " 1.75 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_sprintf (result, "%*g %d", -10, 1.75, 33, 44, 55); + ASSERT (strcmp (result, "1.75 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_sprintf (result, "%-10g %d", 1.75, 33, 44, 55); @@ -2488,6 +2602,20 @@ test_function (int (*my_sprintf) (char *, const char *, ...)) ASSERT (retval == strlen (result)); } + { /* Width given as argument. */ + int retval = + my_sprintf (result, "%*Lg %d", 10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, " 1.75 33") == 0); + ASSERT (retval == strlen (result)); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + int retval = + my_sprintf (result, "%*Lg %d", -10, 1.75L, 33, 44, 55); + ASSERT (strcmp (result, "1.75 33") == 0); + ASSERT (retval == strlen (result)); + } + { /* FLAG_LEFT. */ int retval = my_sprintf (result, "%-10Lg %d", 1.75L, 33, 44, 55); diff --git a/tests/test-vasnprintf-posix.c b/tests/test-vasnprintf-posix.c index ce894b5001..6c81c7c5f4 100644 --- a/tests/test-vasnprintf-posix.c +++ b/tests/test-vasnprintf-posix.c @@ -353,6 +353,32 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Width given as argument. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*a %d", 10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 0x1.cp+0 33") == 0 + || strcmp (result, " 0x3.8p-1 33") == 0 + || strcmp (result, " 0x7p-2 33") == 0 + || strcmp (result, " 0xep-3 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*a %d", -10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "0x1.cp+0 33") == 0 + || strcmp (result, "0x3.8p-1 33") == 0 + || strcmp (result, "0x7p-2 33") == 0 + || strcmp (result, "0xep-3 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* Small precision. */ size_t length; char *result = @@ -753,6 +779,32 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Width given as argument. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*La %d", 10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 0x1.cp+0 33") == 0 + || strcmp (result, " 0x3.8p-1 33") == 0 + || strcmp (result, " 0x7p-2 33") == 0 + || strcmp (result, " 0xep-3 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*La %d", -10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "0x1.cp+0 33") == 0 + || strcmp (result, "0x3.8p-1 33") == 0 + || strcmp (result, "0x7p-2 33") == 0 + || strcmp (result, "0xep-3 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* Small precision. */ size_t length; char *result = @@ -1071,6 +1123,26 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Width given as argument. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*f %d", 10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.750000 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*f %d", -10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.750000 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ size_t length; char *result = @@ -1455,6 +1527,26 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Width given as argument. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*Lf %d", 10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.750000 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*Lf %d", -10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.750000 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ size_t length; char *result = @@ -2044,6 +2136,28 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Width given as argument. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*e %d", 15, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*e %d", -15, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ size_t length; char *result = @@ -2458,6 +2572,28 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Width given as argument. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*Le %d", 15, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*Le %d", -15, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ size_t length; char *result = @@ -2789,6 +2925,26 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Width given as argument. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*g %d", 10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.75 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*g %d", -10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.75 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ size_t length; char *result = @@ -3195,6 +3351,26 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Width given as argument. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*Lg %d", 10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.75 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%*Lg %d", -10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.75 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ size_t length; char *result = diff --git a/tests/test-vasprintf-posix.c b/tests/test-vasprintf-posix.c index 6cfc3aa7f9..5bef8d4a2a 100644 --- a/tests/test-vasprintf-posix.c +++ b/tests/test-vasprintf-posix.c @@ -334,6 +334,32 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) free (result); } + { /* Width given as argument. */ + char *result; + int retval = + my_asprintf (&result, "%*a %d", 10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 0x1.cp+0 33") == 0 + || strcmp (result, " 0x3.8p-1 33") == 0 + || strcmp (result, " 0x7p-2 33") == 0 + || strcmp (result, " 0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + char *result; + int retval = + my_asprintf (&result, "%*a %d", -10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "0x1.cp+0 33") == 0 + || strcmp (result, "0x3.8p-1 33") == 0 + || strcmp (result, "0x7p-2 33") == 0 + || strcmp (result, "0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + { /* Small precision. */ char *result; int retval = @@ -734,6 +760,32 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) free (result); } + { /* Width given as argument. */ + char *result; + int retval = + my_asprintf (&result, "%*La %d", 10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 0x1.cp+0 33") == 0 + || strcmp (result, " 0x3.8p-1 33") == 0 + || strcmp (result, " 0x7p-2 33") == 0 + || strcmp (result, " 0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + char *result; + int retval = + my_asprintf (&result, "%*La %d", -10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "0x1.cp+0 33") == 0 + || strcmp (result, "0x3.8p-1 33") == 0 + || strcmp (result, "0x7p-2 33") == 0 + || strcmp (result, "0xep-3 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + { /* Small precision. */ char *result; int retval = @@ -1052,6 +1104,26 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) free (result); } + { /* Width given as argument. */ + char *result; + int retval = + my_asprintf (&result, "%*f %d", 10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.750000 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + char *result; + int retval = + my_asprintf (&result, "%*f %d", -10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.750000 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ char *result; int retval = @@ -1436,6 +1508,26 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) free (result); } + { /* Width given as argument. */ + char *result; + int retval = + my_asprintf (&result, "%*Lf %d", 10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.750000 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + char *result; + int retval = + my_asprintf (&result, "%*Lf %d", -10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.750000 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ char *result; int retval = @@ -2025,6 +2117,28 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) free (result); } + { /* Width given as argument. */ + char *result; + int retval = + my_asprintf (&result, "%*e %d", 15, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + char *result; + int retval = + my_asprintf (&result, "%*e %d", -15, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ char *result; int retval = @@ -2443,6 +2557,28 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) free (result); } + { /* Width given as argument. */ + char *result; + int retval = + my_asprintf (&result, "%*Le %d", 15, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.750000e+00 33") == 0 + || strcmp (result, " 1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + char *result; + int retval = + my_asprintf (&result, "%*Le %d", -15, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.750000e+00 33") == 0 + || strcmp (result, "1.750000e+000 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ char *result; int retval = @@ -2774,6 +2910,26 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) free (result); } + { /* Width given as argument. */ + char *result; + int retval = + my_asprintf (&result, "%*g %d", 10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.75 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + char *result; + int retval = + my_asprintf (&result, "%*g %d", -10, 1.75, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.75 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ char *result; int retval = @@ -3180,6 +3336,26 @@ test_function (int (*my_asprintf) (char **, const char *, ...)) free (result); } + { /* Width given as argument. */ + char *result; + int retval = + my_asprintf (&result, "%*Lg %d", 10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, " 1.75 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + + { /* Negative width given as argument (cf. FLAG_LEFT below). */ + char *result; + int retval = + my_asprintf (&result, "%*Lg %d", -10, 1.75L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "1.75 33") == 0); + ASSERT (retval == strlen (result)); + free (result); + } + { /* FLAG_LEFT. */ char *result; int retval =