[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