|
|
|
@@ -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; |
|
|
|
} |