Index: tests/Makefile ================================================================== --- tests/Makefile +++ tests/Makefile @@ -50,11 +50,12 @@ OFSHA224HashTests.m \ OFSHA256HashTests.m \ OFSHA384HashTests.m \ OFSHA512HashTests.m SRCS_PLUGINS = OFPluginTests.m -SRCS_SOCKETS = OFHTTPCookieTests.m \ +SRCS_SOCKETS = OFDNSResolverTests.m \ + OFHTTPCookieTests.m \ OFHTTPCookieManagerTests.m \ ${OFHTTPCLIENTTESTS_M} \ OFKernelEventObserverTests.m \ OFTCPSocketTests.m \ OFUDPSocketTests.m \ ADDED tests/OFDNSResolverTests.m Index: tests/OFDNSResolverTests.m ================================================================== --- tests/OFDNSResolverTests.m +++ tests/OFDNSResolverTests.m @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, + * 2018 + * Jonathan Schleifer + * + * 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.QPL included in + * the packaging of this file. + * + * Alternatively, it may be distributed under the terms of the GNU General + * 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 "OFDNSResolver.h" +#import "OFArray.h" +#import "OFDictionary.h" +#import "OFString.h" +#import "OFAutoreleasePool.h" + +#import "TestsAppDelegate.h" + +static OFString *module = @"OFDNSResolverTests"; + +@implementation TestsAppDelegate (OFDNSResolverTests) +- (void)DNSResolverTests +{ + OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; + OFDNSResolver *resolver = [OFDNSResolver resolver]; + OFMutableString *staticHosts = [OFMutableString string]; + + for (OFString *host in [resolver staticHosts]) { + OFString *IPs; + + if ([staticHosts length] > 0) + [staticHosts appendString: @"; "]; + + IPs = [[[resolver staticHosts] objectForKey: host] + componentsJoinedByString: @", "]; + + [staticHosts appendFormat: @"%@=(%@)", host, IPs]; + } + PRINT(GREEN, @"Static hosts: %@", staticHosts); + + PRINT(GREEN, @"Name servers: %@", + [[resolver nameServers] componentsJoinedByString: @", "]); + + PRINT(GREEN, @"Local domain: %@", [resolver localDomain]); + + PRINT(GREEN, @"Search domains: %@", + [[resolver searchDomains] componentsJoinedByString: @", "]); + + PRINT(GREEN, @"Timeout: %lf", [resolver timeout]); + + PRINT(GREEN, @"Max attempts: %u", [resolver maxAttempts]); + + PRINT(GREEN, @"Min number of dots in absolute name: %u", + [resolver minNumberOfDotsInAbsoluteName]); + + PRINT(GREEN, @"Uses TCP: %u", [resolver usesTCP]); + + PRINT(GREEN, @"Config reload interval: %lf", + [resolver configReloadInterval]); + + [pool drain]; +} +@end Index: tests/TestsAppDelegate.h ================================================================== --- tests/TestsAppDelegate.h +++ tests/TestsAppDelegate.h @@ -96,10 +96,14 @@ @end @interface TestsAppDelegate (OFCharacterSetTests) - (void)characterSetTests; @end + +@interface TestsAppDelegate (OFDNSResolverTests) +- (void)DNSResolverTests; +@end @interface TestsAppDelegate (OFDataTests) - (void)dataTests; @end Index: tests/TestsAppDelegate.m ================================================================== --- tests/TestsAppDelegate.m +++ tests/TestsAppDelegate.m @@ -440,10 +440,13 @@ [self propertyListTests]; #if defined(OF_HAVE_PLUGINS) [self pluginTests]; #endif +#ifdef OF_HAVE_SOCKETS + [self DNSResolverTests]; +#endif [self systemInfoTests]; [self localeTests]; #if defined(OF_IOS) [self outputString: [OFString stringWithFormat: @"%d tests failed!",