[FFmpeg-devel] [PATCH] avutil/tests: Improved code coverage for random_seed

James Almer jamrial at gmail.com
Sat Dec 24 05:30:06 EET 2016


On 12/22/2016 9:12 PM, Thomas Turner wrote:
> Signed-off-by: Thomas Turner <thomastdt at googlemail.com>
> ---
>  libavutil/tests/random_seed.c | 34 +++++++++++++++++++++-------------
>  tests/ref/fate/random_seed    |  1 +
>  2 files changed, 22 insertions(+), 13 deletions(-)
> 
> diff --git a/libavutil/tests/random_seed.c b/libavutil/tests/random_seed.c
> index ebe9b3e..fcd68bc 100644
> --- a/libavutil/tests/random_seed.c
> +++ b/libavutil/tests/random_seed.c
> @@ -23,24 +23,32 @@
>  
>  #undef printf
>  #define N 256
> +#define F 2
>  #include <stdio.h>
>  
> +typedef uint32_t (*random_seed_ptr_t)(void);
> +
>  int main(void)
>  {
> -    int i, j, retry;
> +    int i, j, rsf, retry;
>      uint32_t seeds[N];
> +    random_seed_ptr_t random_seed[F] = {av_get_random_seed, get_generic_seed};
>  
> -    for (retry=0; retry<3; retry++){
> -        for (i=0; i<N; i++){
> -            seeds[i] = av_get_random_seed();
> -            for (j=0; j<i; j++)
> -                if (seeds[j] == seeds[i])
> -                    goto retry;
> +    for (rsf=0; rsf<F; ++rsf){
> +        for (retry=0; retry<3; retry++){
> +            for (i=0; i<N; i++){
> +                seeds[i] = random_seed[rsf]();
> +                for (j=0; j<i; j++)
> +                    if (seeds[j] == seeds[i])
> +                        goto retry;
> +            }
> +            printf("seeds OK\n");
> +            goto next;
> +            retry:;
>          }
> -        printf("seeds OK\n");
> -        return 0;
> -        retry:;
> +        printf("rsf %d: FAIL at %d with %X\n", rsf, j, seeds[j]);
> +        return 1;
> +        next:;
>      }
> -    printf("FAIL at %d with %X\n", j, seeds[j]);
> -    return 1;
> -}
> +    return 0;
> + }
> \ No newline at end of file
> diff --git a/tests/ref/fate/random_seed b/tests/ref/fate/random_seed
> index 2b5b3af..ef0eef2 100644
> --- a/tests/ref/fate/random_seed
> +++ b/tests/ref/fate/random_seed
> @@ -1 +1,2 @@
>  seeds OK
> +seeds OK

This is making the test run for an absurd amount of time, to the point
FATE clients are killing the process because it was just not stopping.

Before this it would take a few milliseconds.



More information about the ffmpeg-devel mailing list