int main() { srand(time(0)); struct slab_arena arena; struct slab_cache cache; slab_arena_create(&arena, 0, UINT_MAX, 4000000, MAP_PRIVATE); slab_cache_create(&cache, &arena, 0); int i = 0; while (i < ITERATIONS) { int run = random() % NRUNS; int size = random() % MAX_ALLOC; if (runs[run]) { slab_put(&cache, runs[run]); } runs[run] = slab_get(&cache, size); fail_unless(runs[run]); slab_cache_check(&cache); i++; } slab_cache_destroy(&cache); }
void obuf_basic(struct slab_cache *slabc) { int i; header(); struct obuf buf; obuf_create(&buf, slabc, 16320); for (i = 0; i < ITERATIONS_MAX; i++) { basic_alloc_streak(&buf); fail_unless(obuf_capacity(&buf) > 0); obuf_reset(&buf); fail_unless(obuf_used(&buf) == 0); } obuf_destroy(&buf); fail_unless(slab_cache_used(slabc) == 0); slab_cache_check(slabc); footer(); }