@@ -14,56 +14,43 @@ */ #include "config.h" #include - -#import "TestsAppDelegate.h" - -static OFString *const module = @"OFIPXSocket"; - -@implementation TestsAppDelegate (OFIPXSocketTests) -- (void)IPXSocketTests -{ - const unsigned char zeroNode[IPX_NODE_LEN] = { 0 }; - void *pool = objc_autoreleasePoolPush(); - OFIPXSocket *sock; +#include + +#import "ObjFW.h" +#import "ObjFWTest.h" + +@interface OFIPXSocketTests: OTTestCase +@end + +@implementation OFIPXSocketTests +- (void)testIPXSocket +{ + OFIPXSocket *sock = [OFIPXSocket socket]; + const unsigned char zeroNode[IPX_NODE_LEN] = { 0 }; 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 - node: zeroNode - port: 0 - packetType: 0])) + address1 = [sock bindToNetwork: 0 + node: zeroNode + port: 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"]; - break; + OTSkip(@"IPX unsupported"); case EADDRNOTAVAIL: - [OFStdOut setForegroundColor: [OFColor lime]]; - [OFStdOut writeLine: - @"\r[OFIPXSocket] -[bindToNetwork:node:port:" - @"packetType:]: IPX not configured, skipping " - @"tests"]; - break; + OTSkip(@"IPX not configured"); 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. @@ -84,29 +71,21 @@ OFSocketAddressSetIPXNode(&address1, node); } OFSocketAddressGetIPXNode(&address1, node); if (OFSocketAddressIPXNetwork(&address1) == 0 && - memcmp(node, zeroNode, 6) == 0) { - [OFStdOut setForegroundColor: [OFColor lime]]; - [OFStdOut writeLine: - @"[OFIPXSocket] -[sendBuffer:length:receiver:]: " - @"Could not determine own address, skipping tests"]; - objc_autoreleasePoolPop(pool); - return; - } - - TEST(@"-[sendBuffer:length:receiver:]", - R([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)) - - objc_autoreleasePoolPop(pool); + memcmp(node, zeroNode, 6) == 0) + OTSkip(@"Could not determine own IPX address"); + + [sock sendBuffer: "Hello" length: 5 receiver: &address1]; + + 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)); } @end