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
|
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
|
-
+
+
-
+
+
-
+
+
-
+
|
TEST(@"-[lastListObject]",
[[list lastListObject]->object isEqual: strings[2]])
TEST(@"-[lastListObject]->previous",
[[list lastListObject]->previous->object isEqual: strings[1]])
TEST(@"-[removeListObject:]",
R([list removeListObject: [list lastListObject]]) &&
R([list removeListObject:
(of_list_object_t *)[list lastListObject]]) &&
[[list lastListObject]->object isEqual: strings[1]] &&
R([list removeListObject: [list firstListObject]]) &&
R([list removeListObject:
(of_list_object_t *)[list firstListObject]]) &&
[[list firstListObject]->object isEqual:
[list lastListObject]->object])
TEST(@"-[insertObject:beforeListObject:]",
[list insertObject: strings[0]
beforeListObject: [list lastListObject]] &&
beforeListObject: (of_list_object_t *)[list lastListObject]] &&
[[list lastListObject]->previous->object isEqual: strings[0]])
TEST(@"-[insertObject:afterListObject:]",
[list insertObject: strings[2]
afterListObject: (of_list_object_t *)
afterListObject: [list firstListObject]->next] &&
[list firstListObject]->next] &&
[[list lastListObject]->object isEqual: strings[2]])
TEST(@"-[count]", [list count] == 3)
TEST(@"-[containsObject:]",
[list containsObject: strings[1]] &&
![list containsObject: @"nonexistant"])
|
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
-
+
|
if ([list count] != i)
ok = false;
TEST(@"OFEnumerator's -[nextObject]", ok);
[enumerator reset];
[list removeListObject: [list firstListObject]];
[list removeListObject: (of_list_object_t *)[list firstListObject]];
EXPECT_EXCEPTION(@"Detection of mutation during enumeration",
OFEnumerationMutationException, [enumerator nextObject])
[list prependObject: strings[0]];
loe = [list firstListObject];
|
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
-
+
+
|
TEST(@"Fast Enumeration", ok)
ok = false;
@try {
for (OFString *obj in list) {
(void)obj;
[list removeListObject: [list lastListObject]];
[list removeListObject:
(of_list_object_t *)[list lastListObject]];
}
} @catch (OFEnumerationMutationException *e) {
ok = true;
}
TEST(@"Detection of mutation during Fast Enumeration", ok)
[pool drain];
}
@end
|