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

Hendrik Leppkes h.leppkes at gmail.com
Wed Dec 28 20:08:00 EET 2016


On Fri, Dec 23, 2016 at 1:12 AM, Thomas Turner <thomastdt at googlemail.com> 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
> --
> 1.9.1

The new test sporadically fails on msvc x86_64 for some reason. What
does it actually mean when it fails, ie. what does this thing test?

- Hendrik


More information about the ffmpeg-devel mailing list