1 #include <parlib/slab.h>
4 static void test_single_cache(int iters, size_t size, int align, int flags,
5 void (*ctor)(void *, size_t),
6 void (*dtor)(void *, size_t))
8 struct kmem_cache *test_cache;
10 test_cache = kmem_cache_create("test_cache", size, align, flags, ctor, dtor);
11 printf("Testing Kmem Cache:\n");
12 print_kmem_cache(test_cache);
13 for (int i = 0; i < iters; i++) {
14 objects[i] = kmem_cache_alloc(test_cache, 0);
15 printf("Buffer %d addr = %p\n", i, objects[i]);
17 for (int i = 0; i < iters; i++) {
18 kmem_cache_free(test_cache, objects[i]);
20 kmem_cache_destroy(test_cache);
24 void a_ctor(void *buf, size_t size)
26 printf("constructin tests\n");
28 void a_dtor(void *buf, size_t size)
30 printf("destructin tests\n");
35 test_single_cache(10, 128, 512, 0, 0, 0);
36 test_single_cache(10, 128, 4, 0, a_ctor, a_dtor);
37 test_single_cache(10, 1024, 16, 0, 0, 0);