#include "test.h" #include "monitor.h" #include #include "sys.h" static void test_run_kmalloc() { monitor_write("\tkmalloc:\n"); int alloc_sizes[8] = { 10, 32, 16, 20, 64, 128, 32, 48 }; int *ptrs[8] = { 0 }; int t, i; for (t = 0; t < 4; t++) { for (i = 0; i < 8; i++) { monitor_writeDec(i); monitor_write(" alloc "); monitor_writeDec(alloc_sizes[i]); monitor_write(" : "); ptrs[i] = kmalloc(alloc_sizes[i]); ASSERT(ptrs[i] != 0); *ptrs[i] = i; monitor_writeHex((int)ptrs[i]); monitor_write("\n"); } monitor_write("free : "); for (i = 0; i < 8; i++) { monitor_writeDec(i); ASSERT(*ptrs[i] == i); kfree(ptrs[i]); monitor_write("."); } monitor_write("\n"); } } /* This function is called when the kernel starts up. It runs some basic unit tests (for the moment, only tests kmalloc/kfree) */ void test_run() { monitor_write("Unit tests:\n"); test_run_kmalloc(); monitor_write(" >> Tests OK\n"); }