ObjFW  Diff

Differences From Artifact [278848818e]:

To Artifact [686786627c]:


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
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







-
+
+



-
-
+
-
-
-
+

-
-
-
-
+
+

-





+
-
+
+
+
+
+

-
+
+

-
-
-
+
+

-

+
-
+



-
+
-
-

 * Public License, either version 2 or 3, which can be found in the file
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#include "config.h"

#import "TestsAppDelegate.h"
#import "ObjFW.h"
#import "ObjFWTest.h"

#import "plugin/TestPlugin.h"

#ifndef OF_IOS
static OFString *const pluginName = @"plugin/TestPlugin";
@interface OFPluginTests: OTTestCase
#else
static OFString *const pluginName = @"PlugIns/TestPlugin";
#endif
@end

static OFString *const module = @"OFPlugin";

@implementation TestsAppDelegate (OFPluginTests)
- (void)pluginTests
@implementation OFPluginTests
- (void)testPlugin
{
	void *pool = objc_autoreleasePoolPush();
	OFString *path;
	OFPlugin *plugin;
	Class (*class)(void);
	TestPlugin *test;

#ifndef OF_IOS
	TEST(@"+[pathForName:]", (path = [OFPlugin pathForName: pluginName]))
	path = [OFPlugin pathForName: @"plugin/TestPlugin"];
#else
	path = [OFPlugin pathForName: @"PlugIns/TestPlugin"];
#endif
	OTAssertNotNil(path);

	TEST(@"+[pluginWithPath:]", (plugin = [OFPlugin pluginWithPath: path]))
	plugin = [OFPlugin pluginWithPath: path];
	OTAssertNotNil(plugin);

	TEST(@"-[addressForSymbol:]",
	    (class = (Class (*)(void))(uintptr_t)
	    [plugin addressForSymbol: @"class"]))
	class = (Class (*)(void))(uintptr_t)[plugin addressForSymbol: @"class"];
	OTAssert(class != NULL);

	test = [[class() alloc] init];
	@try {
		test = [[class() alloc] init];
		TEST(@"TestPlugin's -[test:]", [test test: 1234] == 2468)
		OTAssertEqual([test test: 1234], 2468);
	} @finally {
		[test release];
	}

}
	objc_autoreleasePoolPop(pool);
}
@end