[PATCH] Increase the amount of data tested in stdio-common/tst-fwrite-bz29459.c

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Mon Feb 10 19:35:07 GMT 2025



On 05/02/25 17:24, Tulio Magno Quites Machado Filho wrote:
> From: Tulio Magno Quites Machado Filho <tuliom@redhat.com>
> 
> The number of iterations and the length of the string are not high
> enough on some systems causing the test to return false-positives.
> 
> Fixes: 596a61cf6b (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28)
> Reported-by: Florian Weimer <fweimer@redhat.com>
> ---
>  stdio-common/tst-fwrite-bz29459.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/stdio-common/tst-fwrite-bz29459.c b/stdio-common/tst-fwrite-bz29459.c
> index 0640faac0c..4fcc4c89e2 100644
> --- a/stdio-common/tst-fwrite-bz29459.c
> +++ b/stdio-common/tst-fwrite-bz29459.c
> @@ -32,7 +32,7 @@
>  /* Usually this test reproduces in a few iterations.  However, keep a high
>     number of iterations in order to avoid return false-positives due to an
>     overwhelmed/slow system.  */
> -#define ITERATIONS 5000
> +#define ITERATIONS 500000
>  
>  /* The goal of this test is to use fwrite () on a redirected and closed
>     stdout.  A script will guarantee that stdout is redirected to another
> @@ -50,7 +50,7 @@ main (void)
>    size_t rc;
>    /* Ensure the string we send has a new line because we're dealing
>       with a lined-buffered stream.  */
> -  const char *s = "hello\n";
> +  const char *s = "hello world\n";
>    const size_t len = strlen(s);
>  
>    /* Ensure that fwrite buffers the output before writing to stdout.  */

I am seeing some failures with this testcase:

$ cat stdio-common/tst-fwrite-bz29459.out
Error: fwrite did not return an error

With a loaded system on a quite recent chip (Ryzen 5900).  Increasing the
iteration might fix, but I am not sure if this is a long term solution.  
Can't we make it more reliable without this?


More information about the Libc-alpha mailing list