ObjFW  Diff

Differences From Artifact [a21e69eb00]:

To Artifact [94044c3abd]:


20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

#ifndef _WIN32
#define ZD "%zd"
#else
#define ZD "%u"
#endif

#define NUM_TESTS 62
#define SUCCESS								\
	printf("\r\033[1;%dmTests successful: " ZD "/%d\033[0m",	\
	    (i == NUM_TESTS - 1 ? 32 : 33), i + 1, NUM_TESTS);		\
	fflush(stdout);
#define FAIL								\
	printf("\r\033[K\033[1;31mTest " ZD "/%d failed!\033[m\n",	\
	    i + 1, NUM_TESTS);						\







|







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

#ifndef _WIN32
#define ZD "%zd"
#else
#define ZD "%u"
#endif

#define NUM_TESTS 68
#define SUCCESS								\
	printf("\r\033[1;%dmTests successful: " ZD "/%d\033[0m",	\
	    (i == NUM_TESTS - 1 ? 32 : 33), i + 1, NUM_TESTS);		\
	fflush(stdout);
#define FAIL								\
	printf("\r\033[K\033[1;31mTest " ZD "/%d failed!\033[m\n",	\
	    i + 1, NUM_TESTS);						\
140
141
142
143
144
145
146







147
148
149
150
151
152
153
	CHECK_EXCEPT([@"foo" substringFromIndex: 2
					toIndex: 4], OFOutOfRangeException)
	CHECK_EXCEPT([@"foo" substringFromIndex: 4
					toIndex: 4], OFOutOfRangeException)
	CHECK_EXCEPT([@"foo" substringFromIndex: 2
					toIndex: 0], OFInvalidArgumentException)








	/* Split tests */
	a = [@"fooXXbarXXXXbazXXXX" splitWithDelimiter: @"XX"];
	CHECK([[a objectAtIndex: j++] isEqual: @"foo"])
	CHECK([[a objectAtIndex: j++] isEqual: @"bar"])
	CHECK([[a objectAtIndex: j++] isEqual: @""])
	CHECK([[a objectAtIndex: j++] isEqual: @"baz"])
	CHECK([[a objectAtIndex: j++] isEqual: @""])







>
>
>
>
>
>
>







140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
	CHECK_EXCEPT([@"foo" substringFromIndex: 2
					toIndex: 4], OFOutOfRangeException)
	CHECK_EXCEPT([@"foo" substringFromIndex: 4
					toIndex: 4], OFOutOfRangeException)
	CHECK_EXCEPT([@"foo" substringFromIndex: 2
					toIndex: 0], OFInvalidArgumentException)

	/* Misc tests */
	CHECK([[@"foo" stringByAppendingString: @"bar"] isEqual: @"foobar"])
	CHECK([@"foobar" hasPrefix: @"foo"])
	CHECK([@"foobar" hasSuffix: @"bar"])
	CHECK(![@"foobar" hasPrefix: @"foobar0"])
	CHECK(![@"foobar" hasSuffix: @"foobar0"])

	/* Split tests */
	a = [@"fooXXbarXXXXbazXXXX" splitWithDelimiter: @"XX"];
	CHECK([[a objectAtIndex: j++] isEqual: @"foo"])
	CHECK([[a objectAtIndex: j++] isEqual: @"bar"])
	CHECK([[a objectAtIndex: j++] isEqual: @""])
	CHECK([[a objectAtIndex: j++] isEqual: @"baz"])
	CHECK([[a objectAtIndex: j++] isEqual: @""])
213
214
215
216
217
218
219


220
221
222
223
224
225
226
227
	CHECK([[@"y" stringByXMLUnescaping] isEqual: @"y"]);
	CHECK([[@"ä" stringByXMLUnescaping] isEqual: @"ä"]);
	CHECK([[@"€" stringByXMLUnescaping] isEqual: @"€"]);
	CHECK([[@"𝄞" stringByXMLUnescaping] isEqual: @"𝄞"]);

	CHECK_EXCEPT([@"&#;" stringByXMLUnescaping], OFInvalidEncodingException)
	CHECK_EXCEPT([@"&#x;" stringByXMLUnescaping],


	    OFInvalidEncodingException)
	CHECK_EXCEPT([@"&#xg;" stringByXMLUnescaping],
	    OFInvalidEncodingException)

	puts("");

	return 0;
}







>
>








220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
	CHECK([[@"y" stringByXMLUnescaping] isEqual: @"y"]);
	CHECK([[@"ä" stringByXMLUnescaping] isEqual: @"ä"]);
	CHECK([[@"€" stringByXMLUnescaping] isEqual: @"€"]);
	CHECK([[@"𝄞" stringByXMLUnescaping] isEqual: @"𝄞"]);

	CHECK_EXCEPT([@"&#;" stringByXMLUnescaping], OFInvalidEncodingException)
	CHECK_EXCEPT([@"&#x;" stringByXMLUnescaping],
	    OFInvalidEncodingException)
	CHECK_EXCEPT([@"&#g;" stringByXMLUnescaping],
	    OFInvalidEncodingException)
	CHECK_EXCEPT([@"&#xg;" stringByXMLUnescaping],
	    OFInvalidEncodingException)

	puts("");

	return 0;
}