commit 4a326e9337304a3b4c5692f9085490e0ead03d63
parent 2a2c2572b07857b108d983feab45c27ab2470f41
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Fri, 28 Aug 2015 13:31:30 +0200
Add some tests for proxy RNG
Diffstat:
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/src/test_ssp_rng_proxy.c b/src/test_ssp_rng_proxy.c
@@ -38,6 +38,7 @@ main(int argc, char** argv)
struct ssp_rng_proxy* proxy1, *proxy2;
struct ssp_rng* rng[4];
struct ssp_rng* rng1[4], * rng2[4];
+ struct ssp_rng* rng3;
struct mem_allocator allocator;
size_t i = 0;
(void)argc, (void)argv;
@@ -58,7 +59,6 @@ main(int argc, char** argv)
CHECK(ssp_rng_proxy_ref_get(proxy), RES_OK);
CHECK(ssp_rng_proxy_ref_put(NULL), RES_BAD_ARG);
CHECK(ssp_rng_proxy_ref_put(proxy), RES_OK);
- CHECK(ssp_rng_proxy_ref_put(proxy), RES_OK);
CHECK(ssp_rng_proxy_create(&allocator, &ssp_rng_mt19937_64, 4, &proxy), RES_OK);
@@ -86,21 +86,24 @@ main(int argc, char** argv)
}
}
- CHECK(ssp_rng_proxy_create(&allocator, &ssp_rng_threefry, 4, &proxy1), RES_OK);
- CHECK(ssp_rng_proxy_create(&allocator, &ssp_rng_threefry, 4, &proxy2), RES_OK);
- FOR_EACH(i, 0, 4) {
- CHECK(ssp_rng_proxy_create_rng(proxy1, i, &rng1[i]), RES_OK);
- CHECK(ssp_rng_proxy_create_rng(proxy2, i, &rng2[i]), RES_OK);
- }
+ CHECK(ssp_rng_proxy_create(&allocator, &ssp_rng_threefry, 1, &proxy1), RES_OK);
+ CHECK(ssp_rng_proxy_create(&allocator, &ssp_rng_threefry, 1, &proxy2), RES_OK);
+ CHECK(ssp_rng_proxy_create_rng(proxy1, 0, &rng1[0]), RES_OK);
+ CHECK(ssp_rng_proxy_create_rng(proxy2, 0, &rng2[0]), RES_OK);
+ ssp_rng_create(NULL, &ssp_rng_threefry, &rng3);
CHECK(ssp_rng_proxy_ref_put(proxy1), RES_OK);
CHECK(ssp_rng_proxy_ref_put(proxy2), RES_OK);
- ssp_rng_discard(rng1[0], 1000307);
- for (i = 0; i < 1000307; i++) ssp_rng_get(rng2[0]);
+#define COUNT 4605307
+ ssp_rng_discard(rng1[0], COUNT);
+ ssp_rng_discard(rng3, COUNT+1);
+ for (i = 0; i < COUNT; i++) ssp_rng_get(rng2[0]);
CHECK(ssp_rng_get(rng1[0]), ssp_rng_get(rng2[0]));
+ CHECK(ssp_rng_get(rng1[0]), ssp_rng_get(rng3));
FOR_EACH(i, 0, 4) CHECK(ssp_rng_ref_put(rng[i]), RES_OK);
- FOR_EACH(i, 0, 4) CHECK(ssp_rng_ref_put(rng1[i]), RES_OK);
- FOR_EACH(i, 0, 4) CHECK(ssp_rng_ref_put(rng2[i]), RES_OK);
+ CHECK(ssp_rng_ref_put(rng1[0]), RES_OK);
+ CHECK(ssp_rng_ref_put(rng2[0]), RES_OK);
+ CHECK(ssp_rng_ref_put(rng3), RES_OK);
check_memory_allocator(&allocator);
mem_shutdown_proxy_allocator(&allocator);