Subversion Repositories Kolibri OS

Rev

Rev 6058 | Rev 6278 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6058 leency 1
#ifndef INCLUDE_DEBUG_H
2
#define INCLUDE_DEBUG_H
3
#print "[include ]\n"
4
 
5
#ifndef INCLUDE_STRING_H
6
#include "../lib/strings.h"
7
#endif
8
 
9
inline fastcall void debugch( ECX)
10
{
11
	$push eax
12
	$push ebx
13
	$mov eax,63
14
	$mov ebx,1
15
	$int 0x40
16
	$pop ebx
17
	$pop eax
18
}
19
 
20
inline fastcall void debug( EDX)
21
{
22
	$push eax
23
	$push ebx
24
	$push ecx
25
	$mov eax, 63
26
	$mov ebx, 1
27
NEXT_CHAR:
28
	$mov ecx, DSDWORD[edx]
29
	$or	 cl, cl
30
	$jz  DONE
31
	$int 0x40
32
	$inc edx
33
	$jmp NEXT_CHAR
34
DONE:
35
	$pop ecx
36
	$pop ebx
37
	$pop eax
38
}
39
 
40
inline fastcall void debugln( EDX)
41
{
42
	debug( EDX);
6152 leency 43
	debugch(10);
44
	debugch(13);
6058 leency 45
}
46
 
47
inline void debugi(dword d_int)
48
{
49
	char tmpch[12];
50
	itoa_(#tmpch, d_int);
51
	debugln(#tmpch);
52
}
53
 
54
:void assert(dword _type, _actual, _expected)
55
{
56
	char r[4096];
57
	if (_type=='s') {
58
		if (streq(_actual, _expected)) return;
59
		sprintf(#r, "==========nok{\nactual: %s\nexpected: %s", _actual, _expected);
60
		debugln(#r);
61
	}
62
	if (_type=='i') {
63
		if (_actual == _expected)) return;
64
		sprintf(#r, "==========nok{\nactual: %i\nexpected: %i", _actual, _expected);
65
		debugln(#r);
66
	}
67
}
68
 
69
#endif