Comment: | Make tests an OFApplicationDelegate. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
666d38f8be35c127d58c24977b13d09c |
User & Date: | js on 2010-04-07 20:56:48 |
Other Links: | manifest | tags |
2010-04-07
| ||
21:06 | Rename tests files so they are named after the category they implement. check-in: 7bbce47bda user: js tags: trunk | |
20:56 | Make tests an OFApplicationDelegate. check-in: 666d38f8be user: js tags: trunk | |
19:55 | Add OFApplication. check-in: f034850a98 user: js tags: trunk | |
Modified tests/Makefile from [83972f22ab] to [be540c194d].
1 2 3 4 5 | include ../extra.mk SUBDIRS = ${TESTPLUGIN} PROG_NOINST = tests${PROG_SUFFIX} | | | | | | | | | | | | | | | < | > | 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 | include ../extra.mk SUBDIRS = ${TESTPLUGIN} PROG_NOINST = tests${PROG_SUFFIX} SRCS = OFArray.m \ OFDataArray.m \ OFDictionary.m \ OFHashes.m \ OFList.m \ OFNumber.m \ OFObject.m \ ${OFPLUGIN_M} \ OFStream.m \ OFString.m \ OFTCPSocket.m \ ${OFTHREAD_M} \ OFXMLElement.m \ OFXMLParser.m \ ${PROPERTIES_M} \ TestsAppDelegate.m IPHONE_USER = mobile IPHONE_TMP = /tmp/objfw-test .PHONY: run run-tests run-on-iphone run: all if [ -z "${DONT_RUN_TESTS}" ]; then ${MAKE} ${MFLAGS} run-tests; fi |
︙ | ︙ |
Modified tests/OFArray.m from [793d53e296] to [004dd7f704].
︙ | ︙ | |||
12 13 14 15 16 17 18 | #include "config.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | | | | 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 | #include "config.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFArray"; static OFString *c_ary[] = { @"Foo", @"Bar", @"Baz", nil }; @implementation TestsAppDelegate (OFArrayTests) - (void)arrayTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFArray *a[3]; OFMutableArray *m[2]; OFEnumerator *enumerator; id obj; BOOL ok; |
︙ | ︙ | |||
185 186 187 188 189 190 191 | TEST(@"Detection of mutation during Fast Enumeration", ok) [m[0] removeNObjects: 1]; #endif [pool drain]; } | > | 185 186 187 188 189 190 191 192 | TEST(@"Detection of mutation during Fast Enumeration", ok) [m[0] removeNObjects: 1]; #endif [pool drain]; } @end |
Modified tests/OFDataArray.m from [f55dde2843] to [106dfbcd0f].
︙ | ︙ | |||
14 15 16 17 18 19 20 | #include <string.h> #import "OFDataArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <string.h> #import "OFDataArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module; const char *str = "Hello!"; @implementation TestsAppDelegate (OFDataArrayTests) - (void)dataArrayTestsWithClass: (Class)class { OFDataArray *array[4]; void *data[2]; Class other; TEST(@"+[dataArrayWithItemSize:]", (array[0] = [class dataArrayWithItemSize: 4096])) |
︙ | ︙ | |||
107 108 109 110 111 112 113 | fromCArray: NULL]) EXPECT_EXCEPTION(@"Detect out of range in -[removeNItems:]", OFOutOfRangeException, [array[0] removeNItems: [array[0] count] + 1]) } | | < | | > | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | fromCArray: NULL]) EXPECT_EXCEPTION(@"Detect out of range in -[removeNItems:]", OFOutOfRangeException, [array[0] removeNItems: [array[0] count] + 1]) } - (void)dataArrayTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; module = @"OFDataArray"; [self dataArrayTestsWithClass: [OFDataArray class]]; module = @"OFBigDataArray"; [self dataArrayTestsWithClass: [OFBigDataArray class]]; [pool drain]; } @end |
Modified tests/OFDictionary.m from [fc592aae5a] to [3031e7357f].
︙ | ︙ | |||
13 14 15 16 17 18 19 | #import "OFDictionary.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | | | | 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 | #import "OFDictionary.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFDictionary"; static OFString *keys[] = { @"key1", @"key2" }; static OFString *values[] = { @"value1", @"value2" }; @implementation TestsAppDelegate (OFDictionaryTests) - (void)dictionaryTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFMutableDictionary *dict = [OFMutableDictionary dictionary], *dict2; OFEnumerator *key_enum, *obj_enum; OFArray *akeys, *avalues; [dict setObject: values[0] |
︙ | ︙ | |||
146 147 148 149 150 151 152 | ![dict isEqual: dict2] && [dict setObject: values[0] forKey: keys[0]] && [dict isEqual: dict2]) [pool drain]; } | > | 146 147 148 149 150 151 152 153 | ![dict isEqual: dict2] && [dict setObject: values[0] forKey: keys[0]] && [dict isEqual: dict2]) [pool drain]; } @end |
Modified tests/OFHashes.m from [89c9cc43b6] to [9cfde3ad08].
︙ | ︙ | |||
15 16 17 18 19 20 21 | #import "OFHashes.h" #import "OFFile.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | | | | 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 | #import "OFHashes.h" #import "OFFile.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFHashes"; const uint8_t testfile_md5[OF_MD5_DIGEST_SIZE] = "\x00\x8B\x9D\x1B\x58\xDF\xF8\xFE\xEE\xF3\xAE\x8D\xBB\x68\x2D\x38"; const uint8_t testfile_sha1[OF_SHA1_DIGEST_SIZE] = "\xC9\x9A\xB8\x7E\x1E\xC8\xEC\x65\xD5\xEB\xE4\x2E\x0D\xA6\x80\x96\xF5" "\x94\xE7\x17"; @implementation TestsAppDelegate (OFHashesTests) - (void)hashesTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFMD5Hash *md5; OFSHA1Hash *sha1; OFFile *f = [OFFile fileWithPath: @"testfile" mode: @"rb"]; |
︙ | ︙ | |||
62 63 64 65 66 67 68 | ofSize: 1]) EXPECT_EXCEPTION(@"Detect invalid call of -[updateWithBuffer] #2", OFHashAlreadyCalculatedException, [sha1 updateWithBuffer: "" ofSize: 1]) [pool drain]; } | > | 62 63 64 65 66 67 68 69 | ofSize: 1]) EXPECT_EXCEPTION(@"Detect invalid call of -[updateWithBuffer] #2", OFHashAlreadyCalculatedException, [sha1 updateWithBuffer: "" ofSize: 1]) [pool drain]; } @end |
Modified tests/OFList.m from [de1fa087bb] to [20f31495db].
︙ | ︙ | |||
12 13 14 15 16 17 18 | #include "config.h" #import "OFList.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | > | < | 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 | #include "config.h" #import "OFList.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFList"; static OFString *strings[] = { @"Foo", @"Bar", @"Baz" }; @implementation TestsAppDelegate (OFListTests) - (void)listTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFList *list; TEST(@"+[list]", (list = [OFList list])) TEST(@"-[append:]", [list append: strings[0]] && |
︙ | ︙ | |||
66 67 68 69 70 71 72 | [[list first]->next->object isEqual: strings[1]] && [[list last]->object isEqual: strings[2]]) TEST(@"-[isEqual:]", [list isEqual: [[list copy] autorelease]]) [pool drain]; } | > | 66 67 68 69 70 71 72 73 | [[list first]->next->object isEqual: strings[1]] && [[list last]->object isEqual: strings[2]]) TEST(@"-[isEqual:]", [list isEqual: [[list copy] autorelease]]) [pool drain]; } @end |
Modified tests/OFNumber.m from [74f86e0a57] to [389ac325a5].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /* * Copyright (c) 2008 - 2010 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #include "config.h" #import "OFNumber.h" #import "OFAutoreleasePool.h" | > | | | | 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 | /* * Copyright (c) 2008 - 2010 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #include "config.h" #import "OFString.h" #import "OFNumber.h" #import "OFAutoreleasePool.h" #import "TestsAppDelegate.h" static OFString *module = @"OFNumber"; @implementation TestsAppDelegate (OFNumberTests) - (void)numberTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFNumber *num; TEST(@"+[numberWithIntMax:]", (num = [OFNumber numberWithIntMax: 123456789])) |
︙ | ︙ | |||
44 45 46 47 48 49 50 | [[num xor: [OFNumber numberWithInt: 123456831]] asInt] == 42) TEST(@"-[shiftRight:]", [[num shiftRight: [OFNumber numberWithInt: 8]] asInt] == 482253) [pool drain]; } | > | 45 46 47 48 49 50 51 52 | [[num xor: [OFNumber numberWithInt: 123456831]] asInt] == 42) TEST(@"-[shiftRight:]", [[num shiftRight: [OFNumber numberWithInt: 8]] asInt] == 482253) [pool drain]; } @end |
Modified tests/OFObject.m from [e75c8eaf49] to [d56cd335e9].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /* * Copyright (c) 2008 - 2010 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #include "config.h" #import "OFAutoreleasePool.h" #import "OFExceptions.h" | > | | | | 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 | /* * Copyright (c) 2008 - 2010 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #include "config.h" #import "OFString.h" #import "OFAutoreleasePool.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFObject"; @implementation TestsAppDelegate (OFObjectTests) - (void)objectTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFObject *obj = [[[OFObject alloc] init] autorelease]; void *p, *q, *r; EXPECT_EXCEPTION(@"Detect freeing of memory not allocated by object", OFMemoryNotPartOfObjectException, [obj freeMemory: (void*)1]) |
︙ | ︙ | |||
61 62 63 64 65 66 67 | EXPECT_EXCEPTION(@"Detect resizing of memory not allocated by object", OFMemoryNotPartOfObjectException, [obj resizeMemory: (void*)1 toSize: 1024]) [pool drain]; } | > | 62 63 64 65 66 67 68 69 | EXPECT_EXCEPTION(@"Detect resizing of memory not allocated by object", OFMemoryNotPartOfObjectException, [obj resizeMemory: (void*)1 toSize: 1024]) [pool drain]; } @end |
Modified tests/OFPlugin.m from [1ac0553021] to [964d21d8c4].
︙ | ︙ | |||
12 13 14 15 16 17 18 | #include "config.h" #import "OFPlugin.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | | | > | 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 | #include "config.h" #import "OFPlugin.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" #import "plugin/TestPlugin.h" static OFString *module = @"OFPlugin"; @implementation TestsAppDelegate (OFPluginTests) - (void)pluginTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; TestPlugin *plugin; TEST(@"+[pluginFromFile:]", (plugin = [OFPlugin pluginFromFile: @"plugin/TestPlugin"])) TEST(@"TestPlugin's -[test:]", [plugin test: 1234] == 2468) [pool drain]; } @end |
Modified tests/OFStream.m from [eef8cfeb9a] to [f89e698465].
︙ | ︙ | |||
9 10 11 12 13 14 15 16 17 18 | * the packaging of this file. */ #include "config.h" #include <string.h> #import "OFStream.h" #import "OFAutoreleasePool.h" | > | | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | * the packaging of this file. */ #include "config.h" #include <string.h> #import "OFString.h" #import "OFStream.h" #import "OFAutoreleasePool.h" #import "TestsAppDelegate.h" static OFString *module = @"OFStream"; @interface StreamTester: OFStream { int state; } |
︙ | ︙ | |||
55 56 57 58 59 60 61 | return of_pagesize; } return 0; } @end | | | > | 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 | return of_pagesize; } return 0; } @end @implementation TestsAppDelegate (OFStreamTests) - (void)streamTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; StreamTester *t = [[[StreamTester alloc] init] autorelease]; OFString *str; char *cstr; cstr = [t allocMemoryWithSize: of_pagesize - 2]; memset(cstr, 'X', of_pagesize - 3); cstr[of_pagesize - 3] = '\0'; TEST(@"-[readLine]", [[t readLine] isEqual: @"foo"] && [(str = [t readLine]) length] == of_pagesize - 3 && !strcmp([str cString], cstr)) [pool drain]; } @end |
Modified tests/OFString.m from [6ebf6017ca] to [ac7e540eac].
︙ | ︙ | |||
12 13 14 15 16 17 18 | #include "config.h" #import "OFString.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFExceptions.h" | | | | | 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 | #include "config.h" #import "OFString.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFString"; static OFString* whitespace[] = { @" \r \t\n\t \tasd \t \t\t\r\n", @" \t\t \t\t \t \t" }; @interface EntityHandler: OFObject <OFXMLUnescapingDelegate> @end @implementation EntityHandler - (OFString*)foundUnknownEntityNamed: (OFString*)entity { if ([entity isEqual: @"foo"]) return @"bar"; return nil; } @end @implementation TestsAppDelegate (OFStringTests) - (void)stringTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFMutableString *s[3]; OFArray *a; int i; EntityHandler *h; |
︙ | ︙ | |||
337 338 339 340 341 342 343 | TEST(@"-[stringByXMLUnescapingWithHandler:]", (h = [[[EntityHandler alloc] init] autorelease]) && (s[0] = [@"x&foo;y" stringByXMLUnescapingWithHandler: h]) && [s[0] isEqual: @"xbary"]) [pool drain]; } | > | 337 338 339 340 341 342 343 344 | TEST(@"-[stringByXMLUnescapingWithHandler:]", (h = [[[EntityHandler alloc] init] autorelease]) && (s[0] = [@"x&foo;y" stringByXMLUnescapingWithHandler: h]) && [s[0] isEqual: @"xbary"]) [pool drain]; } @end |
Modified tests/OFTCPSocket.m from [32c7d0b2cf] to [0def59b121].
︙ | ︙ | |||
17 18 19 20 21 22 23 | #import "OFTCPSocket.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "macros.h" | | > | < | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #import "OFTCPSocket.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "macros.h" #import "TestsAppDelegate.h" static OFString *module = @"OFTCPSocket"; @implementation TestsAppDelegate (OFTCPSocketTests) - (void)TCPSocketTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFTCPSocket *server, *client = nil, *accepted; OFString *service, *msg; uint16_t port; char buf[6]; |
︙ | ︙ | |||
61 62 63 64 65 66 67 | TEST(@"-[readNBytes:intoBuffer:]", [accepted readNBytes: 6 intoBuffer: buf] && !memcmp(buf, "Hello!", 6)) [pool drain]; } | > | 61 62 63 64 65 66 67 68 | TEST(@"-[readNBytes:intoBuffer:]", [accepted readNBytes: 6 intoBuffer: buf] && !memcmp(buf, "Hello!", 6)) [pool drain]; } @end |
Modified tests/OFThread.m from [003a442993] to [40840a8d67].
︙ | ︙ | |||
12 13 14 15 16 17 18 | #include "config.h" #import "OFThread.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | | | > | 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 | #include "config.h" #import "OFThread.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFThread"; @interface TestThread: OFThread @end @implementation TestThread - main { if ([object isEqual: @"foo"]) return @"success"; return nil; } @end @implementation TestsAppDelegate (OFThreadTests) - (void)threadTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; TestThread *t; OFTLSKey *key; TEST(@"+[threadWithObject:]", (t = [TestThread threadWithObject: @"foo"])) TEST(@"-[join]", [[t join] isEqual: @"success"]) TEST(@"OFTLSKey's +[tlsKey]", (key = [OFTLSKey tlsKey])) TEST(@"+[setObject:forTLSKey:]", [OFThread setObject: @"foo" forTLSKey: key]) TEST(@"+[objectForTLSKey:]", [[OFThread objectForTLSKey: key] isEqual: @"foo"]) [pool drain]; } @end |
Modified tests/OFXMLElement.m from [919f0bd4ed] to [df22df1a10].
︙ | ︙ | |||
14 15 16 17 18 19 20 | #import "OFXMLElement.h" #import "OFString.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #import "OFXMLElement.h" #import "OFString.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFXMLElement"; @implementation TestsAppDelegate (OFXMLElementTests) - (void)XMLElementTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFXMLElement *elem[2]; TEST(@"+[elementWithName:]", (elem[0] = [OFXMLElement elementWithName: @"foo"]) && [[elem[0] string] isEqual: @"<foo/>"]) |
︙ | ︙ | |||
47 48 49 50 51 52 53 | TEST(@"-[addChild:]", [elem[0] addChild: [OFXMLElement elementWithName: @"bar"]] && [[elem[0] string] isEqual: @"<foo foo='b&ar'><bar/></foo>"]) [pool drain]; } | > | 47 48 49 50 51 52 53 54 | TEST(@"-[addChild:]", [elem[0] addChild: [OFXMLElement elementWithName: @"bar"]] && [[elem[0] string] isEqual: @"<foo foo='b&ar'><bar/></foo>"]) [pool drain]; } @end |
Modified tests/OFXMLParser.m from [3ae1450c68] to [23648ec2a7].
︙ | ︙ | |||
16 17 18 19 20 21 22 | #import "OFXMLParser.h" #import "OFString.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" | | | | | > > > > > | 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 | #import "OFXMLParser.h" #import "OFString.h" #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFString.h" #import "OFExceptions.h" #import "TestsAppDelegate.h" static OFString *module = @"OFXMLParser"; static int i = 0; enum event_type { TAG_START, TAG_END, STRING, COMMENT }; @implementation TestsAppDelegate (OFXMLParser) - (void)xmlParserCallbackWithEventType: (enum event_type)et name: (OFString*)name prefix: (OFString*)prefix namespace: (OFString*)ns attributes: (OFArray*)attrs string: (OFString*)string comment: (OFString*)comment { OFString *msg; id *carray; size_t count; i++; msg = [OFString stringWithFormat: @"Parsing part #%d", i]; |
︙ | ︙ | |||
112 113 114 115 116 117 118 | break; default: TEST(msg, NO) break; } } | < < < < > > | > > > > > > | > > > > > > > > > | > > > > > > > | < | < | < > | 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | break; default: TEST(msg, NO) break; } } - (void)xmlParser: (OFXMLParser*)parser didStartTagWithName: (OFString*)name prefix: (OFString*)prefix namespace: (OFString*)ns attributes: (OFArray*)attrs { [self xmlParserCallbackWithEventType: TAG_START name: name prefix: prefix namespace: ns attributes: attrs string: nil comment: nil]; } - (void)xmlParser: (OFXMLParser*)parser didEndTagWithName: (OFString*)name prefix: (OFString*)prefix namespace: (OFString*)ns { [self xmlParserCallbackWithEventType: TAG_END name: name prefix: prefix namespace: ns attributes: nil string: nil comment: nil]; } - (void)xmlParser: (OFXMLParser*)parser foundString: (OFString*)string { [self xmlParserCallbackWithEventType: STRING name: nil prefix: nil namespace: nil attributes: nil string: string comment: nil]; } - (void)xmlParser: (OFXMLParser*)parser foundComment: (OFString*)comment { [self xmlParserCallbackWithEventType: COMMENT name: nil prefix: nil namespace: nil attributes: nil string: nil comment: comment]; } - (OFString*)xmlParser: (OFXMLParser*)parser foundUnknownEntityNamed: (OFString*)entity { if ([entity isEqual: @"foo"]) return @"foobar"; return nil; } - (void)XMLParserTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFXMLParser *parser; const char *str = "bar<foo:bar bar='b&az' qux:qux=\" quux \">\r\n" "foo<bar<qux >bar <baz name='' test='&foo;'/> quxbar\r\n</qux>" "</foo:bar><!-- foo bär-baz -->"; size_t j, len; TEST(@"+[xmlParser]", (parser = [OFXMLParser xmlParser])) TEST(@"-[setDelegate:]", [parser setDelegate: self]) /* Simulate a stream where we only get chunks */ len = strlen(str); for (j = 0; j < len; j+= 2) { if (j + 2 > len) [parser parseBuffer: str + j withSize: 1]; else [parser parseBuffer: str + j withSize: 2]; } TEST(@"Checking if everything was parsed", i == 11) [pool drain]; } @end |
Added tests/TestsAppDelegate.h version [e3e2ff48b8].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | /* * Copyright (c) 2008 - 2010 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #import "OFApplication.h" #define TEST(test, cond) \ { \ [self outputTesting: test \ inModule: module]; \ \ if (cond) \ [self outputSuccess: test \ inModule: module]; \ else { \ [self outputFailure: test \ inModule: module]; \ fails++; \ } \ } #define EXPECT_EXCEPTION(test, exception, code) \ { \ BOOL caught = NO; \ \ [self outputTesting: test \ inModule: module]; \ \ @try { \ code; \ } @catch (exception *e) { \ caught = YES; \ [e dealloc]; \ } \ \ if (caught) \ [self outputSuccess: test \ inModule: module]; \ else { \ [self outputFailure: test \ inModule: module]; \ fails++; \ } \ } @class OFString; @interface TestsAppDelegate: OFObject { int fails; } - (void)outputString: (OFString*)str withColor: (int)color; - (void)outputTesting: (OFString*)test inModule: (OFString*)module; - (void)outputSuccess: (OFString*)test inModule: (OFString*)module; - (void)outputFailure: (OFString*)test inModule: (OFString*)module; @end @interface TestsAppDelegate (OFArrayTests) - (void)arrayTests; @end @interface TestsAppDelegate (OFDataArrayTests) - (void)dataArrayTests; @end @interface TestsAppDelegate (OFDictionaryTests) - (void)dictionaryTests; @end @interface TestsAppDelegate (OFHashesTests) - (void)hashesTests; @end @interface TestsAppDelegate (OFListTests) - (void)listTests; @end @interface TestsAppDelegate (OFNumberTests) - (void)numberTests; @end @interface TestsAppDelegate (OFObjectTests) - (void)objectTests; @end @interface TestsAppDelegate (OFPluginTests) - (void)pluginTests; @end @interface TestsAppDelegate (PropertiesTests) - (void)propertiesTests; @end @interface TestsAppDelegate (OFStreamTests) - (void)streamTests; @end @interface TestsAppDelegate (OFStringTests) - (void)stringTests; @end @interface TestsAppDelegate (OFTCPSocketTests) - (void)TCPSocketTests; @end @interface TestsAppDelegate (OFThreadTests) - (void)threadTests; @end @interface TestsAppDelegate (OFXMLElementTests) - (void)XMLElementTests; @end @interface TestsAppDelegate (OFXMLParserTests) - (void)XMLParserTests; @end |
Added tests/TestsAppDelegate.m version [cceb875b84].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 105 | /* * Copyright (c) 2008 - 2010 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #import "OFString.h" #import "OFFile.h" #import "OFAutoreleasePool.h" #import "TestsAppDelegate.h" @implementation TestsAppDelegate - (void)outputString: (OFString*)str withColor: (int)color { #ifdef STDOUT switch (color) { case 0: [of_stdout writeString: @"\r\033[K\033[1;33m"]; break; case 1: [of_stdout writeString: @"\r\033[K\033[1;32m"]; break; case 2: [of_stdout writeString: @"\r\033[K\033[1;31m"]; break; } [of_stdout writeString: str]; [of_stdout writeString: @"\033[m"]; #else #error No output method! #endif } - (void)outputTesting: (OFString*)test inModule: (OFString*)module { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; [self outputString: [OFString stringWithFormat: @"[%s] %s: testing...", [module cString], [test cString]] withColor: 0]; [pool release]; } - (void)outputSuccess: (OFString*)test inModule: (OFString*)module { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; [self outputString: [OFString stringWithFormat: @"[%s] %s: ok\n", [module cString], [test cString]] withColor: 1]; [pool release]; } - (void)outputFailure: (OFString*)test inModule: (OFString*)module { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; [self outputString: [OFString stringWithFormat: @"[%s] %s: failed\n", [module cString], [test cString]] withColor: 2]; [pool release]; } - (void)applicationDidFinishLaunching { [self objectTests]; [self hashesTests]; [self stringTests]; [self dataArrayTests]; [self arrayTests]; [self dictionaryTests]; [self listTests]; [self numberTests]; [self streamTests]; [self TCPSocketTests]; #ifdef OF_THREADS [self threadTests]; #endif [self XMLElementTests]; [self XMLParserTests]; #ifdef OF_PLUGINS [self pluginTests]; #endif #ifdef OF_HAVE_PROPERTIES [self propertiesTests]; #endif } @end int main(int argc, char *argv[]) { return of_application_main(argc, argv, [TestsAppDelegate class]); } |
Deleted tests/main.h version [17be4b9ff5].
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted tests/main.m version [ff9398bf83].
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Modified tests/properties.m from [faa25cff7b] to [a4728313bf].
︙ | ︙ | |||
10 11 12 13 14 15 16 | */ #include "config.h" #import "OFString.h" #import "OFAutoreleasePool.h" | | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | */ #include "config.h" #import "OFString.h" #import "OFAutoreleasePool.h" #import "TestsAppDelegate.h" static OFString *module = @"Properties"; @interface PropertiesTest: OFObject { OFString *foo; OFString *bar; |
︙ | ︙ | |||
37 38 39 40 41 42 43 | [foo release]; [bar release]; [super dealloc]; } @end | | | > | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | [foo release]; [bar release]; [super dealloc]; } @end @implementation TestsAppDelegate (PropertiesTests) - (void)propertiesTests { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; PropertiesTest *pt = [[[PropertiesTest alloc] init] autorelease]; OFString *t = [OFMutableString stringWithString: @"foo"]; [pt setFoo: t]; TEST(@"copy, nonatomic", [[pt foo] isEqual: @"foo"] && [pt foo] != @"foo" && [[pt foo] retainCount] == 1) [pt setBar: t]; TEST(@"retain, atomic", [pt bar] == t && [t retainCount] == 3) [pool drain]; } @end |