summaryrefslogblamecommitdiff
path: root/src/kernel/core/test.c
blob: 77c7029c76d173ea557f1f93edd7e0b02e6bca22 (plain) (tree)






























                                                                                                                             
#include "test.h"
#include "monitor.h"
#include <mem/mem.h>
#include "sys.h"

#define TEST_KMALLOC(var, sz) monitor_write("kmalloc:"); monitor_writeHex(sz); void *var = kmalloc(sz); \
	if (var < 0xE0000000) { monitor_write(":FAIL\t"); PANIC("A test failed."); } \
	else monitor_write(":OK:"); monitor_writeHex(var); monitor_write("\t");
#define TEST_KFREE(var) if (var != 0) { monitor_write("kfree:"); monitor_writeHex(var); kfree(var); monitor_write(":OK\t"); }

void test_run() {
	monitor_write("Run kmalloc() and kfree() unit tests:\n");
	int i;
	for (i = 1; i <= 5; i++) {
		monitor_write("\nMALLOC TEST SERIES #"); monitor_writeDec(i); monitor_write(":\n");
		TEST_KMALLOC(a, 32);
		TEST_KMALLOC(b, 64);
		TEST_KMALLOC(c, 256);
		TEST_KMALLOC(d, 512);
		TEST_KMALLOC(e, 1024);
		TEST_KMALLOC(f, 4096);
		TEST_KMALLOC(g, 16384);
		TEST_KFREE(b);
		TEST_KFREE(c);
		TEST_KFREE(d);
		TEST_KFREE(e);
		TEST_KFREE(f);
		TEST_KFREE(g);
	}
	monitor_write("\nUnit tests finished.\n");
}