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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
//
// test.m
// TikZiT
//
// Copyright 2010 Aleks Kissinger. All rights reserved.
//
//
// This file is part of TikZiT.
//
// TikZiT is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// TikZiT is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with TikZiT. If not, see <http://www.gnu.org/licenses/>.
//
#import "test/test.h"
static int PASSES;
static int FAILS;
static int ALLOC_INSTANCES = 0;
static BOOL colorEnabled = YES;
static int depth = 0;
static NSString *RED, *GREEN, *BLUE, *OFF;
static NSString *indents[6] =
{@"", @" ", @" ", @" ",
@" ", @" "};
#define INDENT ((depth >= 6) ? indents[5] : indents[depth])
@implementation Allocator
+ (id)alloc {
++ALLOC_INSTANCES;
return [super alloc];
}
- (void)dealloc {
--ALLOC_INSTANCES;
[super dealloc];
}
+ (Allocator*)allocator {
return [[[Allocator alloc] init] autorelease];
}
@end
void TEST(NSString *msg, BOOL test) {
if (test) {
PUTS(@"%@[%@PASS%@] %@", INDENT, GREEN, OFF, msg);
++PASSES;
} else {
PUTS(@"%@[%@FAIL%@] %@", INDENT, RED, OFF, msg);
++FAILS;
}
}
void startTests() {
PASSES = 0;
FAILS = 0;
}
void endTests() {
PUTS(@"Done testing. %@%d%@ passed, %@%d%@ failed.",
GREEN, PASSES, OFF,
RED, FAILS, OFF);
}
void startTestBlock(NSString *name) {
PUTS(@"%@Starting %@%@%@ tests.", INDENT, BLUE, name, OFF);
++depth;
}
void endTestBlock(NSString *name) {
--depth;
PUTS(@"%@Done with %@%@%@ tests.", INDENT, BLUE, name, OFF);
}
void setColorEnabled(BOOL b) {
colorEnabled = b;
if (b) {
RED = @"\033[31;1m";
GREEN = @"\033[32;1m";
BLUE = @"\033[36;1m";
OFF = @"\033[0m";
} else {
RED = @"";
GREEN = @"";
BLUE = @"";
OFF = @"";
}
}
|