| @safe unittest | |
| { | |
| import std.socket; | |
| InternetHost ih = new InternetHost; | |
| ih.getHostByAddr(0x7F_00_00_01); | |
| assert(ih.addrList[0] == 0x7F_00_00_01); | |
| ih.getHostByAddr("127.0.0.1"); | |
| assert(ih.addrList[0] == 0x7F_00_00_01); | |
| if (!ih.getHostByName("www.digitalmars.com")) | |
| return; // don't fail if not connected to internet | |
| assert(ih.addrList.length); | |
| InternetAddress ia = new InternetAddress(ih.addrList[0], InternetAddress.PORT_ANY); | |
| assert(ih.name == "www.digitalmars.com" || ih.name == "digitalmars.com", | |
| ih.name); | |
| /* The following assert randomly fails in the test suite. | |
| * https://issues.dlang.org/show_bug.cgi?id=22791 | |
| * So just ignore it when it fails. | |
| */ | |
| //assert(ih.getHostByAddr(ih.addrList[0])); | |
| if (ih.getHostByAddr(ih.addrList[0])) | |
| { | |
| string getHostNameFromInt = ih.name.dup; | |
| // This randomly fails in the compiler test suite | |
| //assert(ih.getHostByAddr(ia.toAddrString())); | |
| if (ih.getHostByAddr(ia.toAddrString())) | |
| { | |
| string getHostNameFromStr = ih.name.dup; | |
| assert(getHostNameFromInt == getHostNameFromStr); | |
| } | |
| } | |
| } | |
| @system unittest | |
| { | |
| import std.socket; | |
| auto addr1 = new InternetAddress("127.0.0.1", 80); | |
| auto addr2 = new InternetAddress("127.0.0.2", 80); | |
| assert(addr1 == addr1); | |
| assert(addr1 != addr2); | |
| } | |
| @safe unittest | |
| { | |
| import std.socket; | |
| immutable ubyte[4] data = [1, 2, 3, 4]; | |
| auto pair = socketPair(); | |
| scope(exit) foreach (s; pair) s.close(); | |
| pair[0].send(data[]); | |
| auto buf = new ubyte[data.length]; | |
| pair[1].receive(buf); | |
| assert(buf == data); | |
| } | |