ObjFW  Check-in [1b119ef77e]

Overview
Comment:Migrate OFIPXSocketTests to ObjFWTest
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | objfwtest
Files: files | file ages | folders
SHA3-256: 1b119ef77e58d6b2ab3281f00d522db6c61009b2505b37cf34b99cbb1f5a04ae
User & Date: js on 2024-02-13 23:57:13
Other Links: branch diff | manifest | tags
Context
2024-02-14
00:16
Migrate OFSPXSocketTests to ObjFWTest check-in: dfcd2ee66f user: js tags: objfwtest
2024-02-13
23:57
Migrate OFIPXSocketTests to ObjFWTest check-in: 1b119ef77e user: js tags: objfwtest
23:48
Migrate OFUNIXStreamSocketTests to ObjFWTest check-in: b77972796e user: js tags: objfwtest
Changes

Modified new_tests/Makefile from [bd660bc7cf] to [732eb6b96f].

47
48
49
50
51
52
53

54

55
56
57
58
59
60
61
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63







+

+







       testfile_bin.m			\
       testfile_ini.m
SRCS_PLUGINS = OFPluginTests.m
SRCS_SOCKETS = OFDNSResolverTests.m	\
	       OFSocketTests.m		\
	       OFTCPSocketTests.m	\
	       OFUDPSocketTests.m	\
	       ${USE_SRCS_IPX}		\
	       ${USE_SRCS_UNIX_SOCKETS}
SRCS_IPX = OFIPXSocketTests.m
SRCS_UNIX_SOCKETS = OFUNIXDatagramSocketTests.m	\
		    OFUNIXStreamSocketTests.m
SRCS_SUBPROCESSES = OFSubprocessTests.m
SRCS_THREADS = OFThreadTests.m

include ../buildsys.mk

Renamed and modified tests/OFIPXSocketTests.m [0ae4e44d89] to new_tests/OFIPXSocketTests.m [1646dd280e].

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







+

-
+
+

-
+
+

-
-
+
+

+

-
-






-
-

-
-
+


-
+



-
-
-
-
+
-

-
-
-
-
+
-
-



-
-
-







 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#include "config.h"

#include <errno.h>
#include <string.h>

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

static OFString *const module = @"OFIPXSocket";
@interface OFIPXSocketTests: OTTestCase
@end

@implementation TestsAppDelegate (OFIPXSocketTests)
- (void)IPXSocketTests
@implementation OFIPXSocketTests
- (void)testIPXSocket
{
	OFIPXSocket *sock = [OFIPXSocket socket];
	const unsigned char zeroNode[IPX_NODE_LEN] = { 0 };
	void *pool = objc_autoreleasePoolPush();
	OFIPXSocket *sock;
	OFSocketAddress address1, address2;
	OFDictionary *networkInterfaces;
	char buffer[5];
	unsigned char node1[IPX_NODE_LEN], node2[IPX_NODE_LEN];
	unsigned char node[IPX_NODE_LEN];

	TEST(@"+[socket]", (sock = [OFIPXSocket socket]))

	@try {
		TEST(@"-[bindToNetwork:node:port:packetType:]",
		R(address1 = [sock bindToNetwork: 0
		address1 = [sock bindToNetwork: 0
					    node: zeroNode
					    port: 0
				      packetType: 0]))
				    packetType: 0];
	} @catch (OFBindSocketFailedException *e) {
		switch (e.errNo) {
		case EAFNOSUPPORT:
			[OFStdOut setForegroundColor: [OFColor lime]];
			[OFStdOut writeLine:
			    @"\r[OFIPXSocket] -[bindToNetwork:node:port:"
			    @"packetType:]: IPX unsupported, skipping tests"];
			OTSkip(@"IPX unsupported");
			break;
		case EADDRNOTAVAIL:
			[OFStdOut setForegroundColor: [OFColor lime]];
			[OFStdOut writeLine:
			    @"\r[OFIPXSocket] -[bindToNetwork:node:port:"
			    @"packetType:]: IPX not configured, skipping "
			OTSkip(@"IPX not configured");
			    @"tests"];
			break;
		default:
			@throw e;
		}

		objc_autoreleasePoolPop(pool);
		return;
	}

	/*
	 * Find any network interface with IPX and send to it. Any should be
	 * fine since we bound to 0.0.
	 */
	networkInterfaces = [OFSystemInfo networkInterfaces];
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
69
70
71
72
73
74
75

76




77



78



79
80









81
82
83
84
85
86
87
88
89
90


91







-
+
-
-
-
-
+
-
-
-
+
-
-
-
+

-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-

		    OFSocketAddressIPXNetwork([addresses itemAtIndex: 0]));
		OFSocketAddressGetIPXNode([addresses itemAtIndex: 0], node);
		OFSocketAddressSetIPXNode(&address1, node);
	}

	OFSocketAddressGetIPXNode(&address1, node);
	if (OFSocketAddressIPXNetwork(&address1) == 0 &&
	    memcmp(node, zeroNode, 6) == 0) {
	    memcmp(node, zeroNode, 6) == 0)
		[OFStdOut setForegroundColor: [OFColor lime]];
		[OFStdOut writeLine:
		    @"[OFIPXSocket] -[sendBuffer:length:receiver:]: "
		    @"Could not determine own address, skipping tests"];
		OTSkip(@"Could not determine own IPX address");
		objc_autoreleasePoolPop(pool);
		return;
	}


	TEST(@"-[sendBuffer:length:receiver:]",
	    R([sock sendBuffer: "Hello" length: 5 receiver: &address1]))
	[sock sendBuffer: "Hello" length: 5 receiver: &address1];

	TEST(@"-[receiveIntoBuffer:length:sender:]",
	    [sock receiveIntoBuffer: buffer length: 5 sender: &address2] == 5 &&
	    memcmp(buffer, "Hello", 5) == 0 &&
	    R(OFSocketAddressGetIPXNode(&address1, node1)) &&
	    R(OFSocketAddressGetIPXNode(&address2, node2)) &&
	    memcmp(node1, node2, IPX_NODE_LEN) == 0 &&
	    OFSocketAddressIPXPort(&address1) ==
	    OFSocketAddressIPXPort(&address2))

	OTAssertEqual([sock receiveIntoBuffer: buffer
				       length: 5
				       sender: &address2], 5);
	OTAssertEqual(memcmp(buffer, "Hello", 5), 0);
	OFSocketAddressGetIPXNode(&address1, node1);
	OFSocketAddressGetIPXNode(&address2, node2);
	OTAssertEqual(memcmp(node1, node2, IPX_NODE_LEN), 0);
	OTAssertEqual(OFSocketAddressIPXPort(&address1),
	    OFSocketAddressIPXPort(&address2));
}
	objc_autoreleasePoolPop(pool);
}
@end

Modified tests/Makefile from [d29c8d2b6b] to [9057fcf858].

33
34
35
36
37
38
39
40
41

42
43
44
45
46
47
48
33
34
35
36
37
38
39


40
41
42
43
44
45
46
47







-
-
+







SRCS_SOCKETS = ${OF_HTTP_CLIENT_TESTS_M}	\
	       OFHTTPCookieTests.m		\
	       OFHTTPCookieManagerTests.m	\
	       OFKernelEventObserverTests.m	\
	       ${USE_SRCS_APPLETALK}		\
	       ${USE_SRCS_IPX}
SRCS_APPLETALK = OFDDPSocketTests.m
SRCS_IPX = OFIPXSocketTests.m		\
	   OFSPXSocketTests.m		\
SRCS_IPX = OFSPXSocketTests.m		\
	   OFSPXStreamSocketTests.m
SRCS_WINDOWS = OFWindowsRegistryKeyTests.m

IOS_USER ?= mobile
IOS_TMP ?= /tmp/objfw-test

include ../buildsys.mk

Modified tests/TestsAppDelegate.h from [c0feb7d760] to [fffbe22329].

79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
79
80
81
82
83
84
85




86
87
88
89
90
91
92







-
-
-
-







- (void)HTTPCookieTests;
@end

@interface TestsAppDelegate (OFHTTPCookieManagerTests)
- (void)HTTPCookieManagerTests;
@end

@interface TestsAppDelegate (OFIPXSocketTests)
- (void)IPXSocketTests;
@end

@interface TestsAppDelegate (OFKernelEventObserverTests)
- (void)kernelEventObserverTests;
@end

@interface TestsAppDelegate (OFListTests)
- (void)listTests;
@end

Modified tests/TestsAppDelegate.m from [c53e2faa86] to [81c2636e5c].

380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
380
381
382
383
384
385
386

387
388
389
390
391
392
393







-







	[self listTests];
	[self valueTests];
	[self streamTests];
	[self memoryStreamTests];
	[self notificationCenterTests];
#ifdef OF_HAVE_SOCKETS
# ifdef OF_HAVE_IPX
	[self IPXSocketTests];
	[self SPXSocketTests];
	[self SPXStreamSocketTests];
# endif
# ifdef OF_HAVE_APPLETALK
	[self DDPSocketTests];
# endif
	[self kernelEventObserverTests];