--- libaitsess/contrib/Attic/test_mem.c 2012/02/27 23:57:12 1.1.2.2 +++ libaitsess/contrib/Attic/test_mem.c 2012/02/28 09:36:36 1.1.2.6 @@ -2,23 +2,65 @@ #include +void show(u_int size, u_int act, u_int inact) +{ + if (!act && !inact) + return; + + if (size < 1024) + printf("Statistics:: BUCKET %uB size, %u active, %u inactive\n", size, act, inact); + else if (size < 1024 * 1024) + printf("Statistics:: BUCKET %uKB size, %u active, %u inactive\n", size / 1024, act, inact); + else + printf("Statistics:: BUCKET %uMB size, %u active, %u inactive\n", size / (1024 * 1024), act, inact); +} + int main(int argc, char **argv) { mpool_t *mp; void *addr; - uintptr_t blah = 4000; int i; - printf("blah=%x\n", sizeof(uintptr_t) == sizeof(u_int) ? 0 : blah >> 32); + for (i = 0; i < 3; i++) { + addr = malloc(4000); + printf("addr=%p\n", addr); + free(addr); + } - mp = mpool_init(); + mp = mpool_init(0); if (!mp) { printf("Error:: #%d - %s\n", sess_GetErrno(), sess_GetError()); return 1; } for (i = 0; i < 3; i++) { + addr = mpool_malloc(mp, 4000, "mdaaa 4000"); + if (!addr) { + printf("Error:: #%d - %s\n", sess_GetErrno(), sess_GetError()); + mpool_destroy(&mp); + return 2; + } + printf("addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr)); + + strlcpy(addr, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\ndddddd\n", + mpool_getsizebyaddr(addr)); +// mpool_free(mp, addr, 0); + } + + printf("1)\n"); + mpool_statistics(mp, show); + + mpool_free(mp, addr, 0); + + printf("2)\n"); + mpool_statistics(mp, show); + + mpool_purge(mp, 0); + + printf("3)\n"); + mpool_statistics(mp, show); + addr = mpool_malloc(mp, 4000, "mdaaa 4000"); if (!addr) { printf("Error:: #%d - %s\n", sess_GetErrno(), sess_GetError()); @@ -26,14 +68,10 @@ main(int argc, char **argv) return 2; } printf("addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr)); + mpool_free(mp, addr, 0); - strlcpy(addr, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\ndddddd\n", - mpool_getsizebyaddr(addr)); -// mpool_free(mp, addr, 0); - } - - mpool_purge(mp, 1); - + printf("Done.\n"); + mpool_statistics(mp, show); mpool_destroy(&mp); return 0; }