aboutsummaryrefslogtreecommitdiff
path: root/kernel/test.c
blob: f1a49a6c91029faf76703a902c736dda4dc84288 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// MIT License, Copyright (c) 2020 Marvin Borner

#include <boot.h>
#include <conv.h>
#include <cpu.h>
#include <math.h>
#include <mem.h>
#include <serial.h>
#include <str.h>
#include <test.h>

void test_all(struct vid_info *vid_info)
{
	// Serial connection
	serial_install();
	serial_print("\nConnected testing.\n");

	// Boot passed
	check(vid_info && vid_info->mode && vid_info->vbe);

	// Test malloc
	heap_init(0x00f00000);
	u32 *a = malloc(a_mag);
	u32 *b = malloc(b_mag);
	equals(a[-1], a_mag);
	equals(a[a_mag], b_mag);
	equals(b[-1], b_mag);

	// Test math
	equals(pow(2, 3), 8);
	equals(pow(0, 3), 0);
	equals(pow(0, 0), 1);

	// Test conv
	char buf[10] = { 0 };
	strcpy(buf, "42");
	equals(atoi(buf), 42);
	equals_str(htoa(0x42), "42");
	equals(htoi(buf), 0x42);
	equals_str(itoa(42), "42");
	equals_str(conv_base(42, buf, 0, 0), "");
	equals_str(conv_base(42, buf, 2, 0), "101010");
	/* equals_str(conv_base(424242, buf, 36, 0), "93ci"); // TODO: THIS */

	idle();
}