Rev 6152 | Go to most recent revision | Details | 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 |
||
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); |
||
43 | debugch('\n'); |
||
44 | } |
||
45 | |||
46 | inline void debugi(dword d_int) |
||
47 | { |
||
48 | char tmpch[12]; |
||
49 | itoa_(#tmpch, d_int); |
||
50 | debugln(#tmpch); |
||
51 | } |
||
52 | |||
53 | :void assert(dword _type, _actual, _expected) |
||
54 | { |
||
55 | char r[4096]; |
||
56 | if (_type=='s') { |
||
57 | if (streq(_actual, _expected)) return; |
||
58 | sprintf(#r, "==========nok{\nactual: %s\nexpected: %s", _actual, _expected); |
||
59 | debugln(#r); |
||
60 | } |
||
61 | if (_type=='i') { |
||
62 | if (_actual == _expected)) return; |
||
63 | sprintf(#r, "==========nok{\nactual: %i\nexpected: %i", _actual, _expected); |
||
64 | debugln(#r); |
||
65 | } |
||
66 | } |
||
67 | |||
68 | #endif |