X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Falloc%2Ftest%2Frun.c;h=a6d021ff9e5dc87b3d1f25cf821fc15215031208;hp=f98eb7c5e9e90a620a06a370592314d913cae427;hb=bbd7380019f3ea4629d170af24b902bf734c83ea;hpb=7f9d956574d30f70d2260f4b7694f481e3765173;ds=sidebyside diff --git a/ccan/alloc/test/run.c b/ccan/alloc/test/run.c index f98eb7c5..a6d021ff 100644 --- a/ccan/alloc/test/run.c +++ b/ccan/alloc/test/run.c @@ -48,12 +48,9 @@ static void test(unsigned int pool_size) void *mem; unsigned int i, num, max_size; void **p = calloc(pool_size, sizeof(*p)); - /* FIXME: Should be pool_size! */ - unsigned alloc_limit = (pool_size / MAX_LARGE_PAGES) >> MAX_PAGE_OBJECT_ORDER; + unsigned alloc_limit = pool_size / 2; - /* FIXME: Needs to be page aligned for now. */ - if (posix_memalign(&mem, pool_size, pool_size) != 0) - errx(1, "Failed allocating aligned memory"); + mem = malloc(pool_size); /* Small pool, all allocs fail, even 0-length. */ alloc_init(mem, 0); @@ -136,7 +133,7 @@ static void test(unsigned int pool_size) for (i = 0; (1 << i) < alloc_limit; i++) { p[i] = alloc_get(mem, pool_size, i, 1 << i); ok1(p[i]); - ok1(((unsigned long)p[i] % (1 << i)) == 0); + ok1(((char *)p[i] - (char *)mem) % (1 << i) == 0); ok1(alloc_check(mem, pool_size)); ok1(alloc_size(mem, pool_size, p[i]) >= i); } @@ -150,8 +147,9 @@ static void test(unsigned int pool_size) for (i = 0; (1 << i) < alloc_limit; i++) { p[0] = alloc_get(mem, pool_size, 1, 1 << i); ok1(p[0]); + ok1(((char *)p[0] - (char *)mem) % (1 << i) == 0); ok1(alloc_check(mem, pool_size)); - ok1(alloc_size(mem, pool_size, p[i]) >= 1); + ok1(alloc_size(mem, pool_size, p[0]) >= 1); alloc_free(mem, pool_size, p[0]); ok1(alloc_check(mem, pool_size)); } @@ -166,7 +164,7 @@ static void test(unsigned int pool_size) int main(int argc, char *argv[]) { - plan_tests(112 + 92); + plan_tests(440); /* Large test. */ test(MIN_USEFUL_SIZE * 2);