On Wed, Dec 28, 2016 at 7:08 PM, Hendrik Leppkes <h.lepp...@gmail.com> wrote: > On Fri, Dec 23, 2016 at 1:12 AM, Thomas Turner <thomas...@googlemail.com> > wrote: >> Signed-off-by: Thomas Turner <thomas...@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? >
Specifically, it always fails with rsf 1, which seems to be get_generic_seed - but windows has a special crypto seed provider, get_generic_seed is never used. Making fate fail for some inaccuracy in the clock in code thats never used is a bit annoying. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel