X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/6ca13db8fd03ef3d85def0d45d00f632b9d58f43..d31f4a790046b7a6ebd1099dd474908c50b947b9:/pgen.c diff --git a/pgen.c b/pgen.c index 86e31c1..d989a4c 100644 --- a/pgen.c +++ b/pgen.c @@ -351,6 +351,31 @@ int pgen_primep(mp *p, grand *gr) #include +static int t_primep(dstr *v) +{ + mp *m = *(mp **)v[0].buf; + int e = *(int *)v[1].buf; + int r; + grand *rng; + int ok = 1; + + rng = fibrand_create(0); + r = pgen_primep(m, rng); + GR_DESTROY(rng); + if (e != r) { + fputs("\n*** primep failed", stderr); + fputs("\nm = ", stderr); mp_writefile(m, stderr, 10); + fprintf(stderr, "\nexpected %d", e); + fprintf(stderr, "\nreported %d", r); + fputc('\n', stderr); + ok = 0; + } + + mp_drop(m); + assert(mparena_count(MPARENA_GLOBAL) == 0); + return (ok); +} + static int verify(dstr *v) { mp *m = *(mp **)v[0].buf; @@ -382,6 +407,7 @@ static int verify(dstr *v) static test_chunk tests[] = { { "pgen", verify, { &type_mp, &type_mp, 0 } }, + { "primep", t_primep, { &type_mp, &type_int, 0 } }, { 0, 0, { 0 } } };