You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2020/04/25 08:59:42 UTC

[jmeter] branch master updated: Speed up DNSCacheManagerSpec + simplify some code in DNSCacheManager. (#580)

This is an automated email from the ASF dual-hosted git repository.

pmouawad pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new 9fedd18  Speed up DNSCacheManagerSpec + simplify some code in DNSCacheManager. (#580)
9fedd18 is described below

commit 9fedd185d3f1b541e6095977fd755449bed71a2a
Author: Graham Russell <gr...@ham1.co.uk>
AuthorDate: Sat Apr 25 09:59:33 2020 +0100

    Speed up DNSCacheManagerSpec + simplify some code in DNSCacheManager. (#580)
    
    * Speed up DNSCacheManagerSpec + simplify some code in DNSCacheManager.
    
    * Remove printnln
---
 .../protocol/http/control/DNSCacheManager.java     |  8 ++--
 .../http/control/DNSCacheManagerSpec.groovy        | 53 +++++++++++-----------
 2 files changed, 29 insertions(+), 32 deletions(-)

diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/control/DNSCacheManager.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
index b65de82..11c66be 100644
--- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
+++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/control/DNSCacheManager.java
@@ -35,7 +35,6 @@ import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.CollectionProperty;
 import org.apache.jmeter.testelement.property.JMeterProperty;
 import org.apache.jmeter.testelement.property.NullProperty;
-import org.apache.jmeter.testelement.property.PropertyIterator;
 import org.apache.jmeter.testelement.property.TestElementProperty;
 import org.apache.jmeter.threads.JMeterContextService;
 import org.slf4j.Logger;
@@ -184,9 +183,8 @@ public class DNSCacheManager extends ConfigTestElement implements TestIterationL
             return false;
         }
         CollectionProperty property = (CollectionProperty) p;
-        PropertyIterator iterator = property.iterator();
-        while (iterator.hasNext()) {
-            TestElementProperty possibleEntry = (TestElementProperty) iterator.next();
+        for (JMeterProperty jMeterProperty : property) {
+            TestElementProperty possibleEntry = (TestElementProperty) jMeterProperty;
             if (log.isDebugEnabled()) {
                 log.debug("Look for {} at {}: {}", host, possibleEntry.getObjectValue(), possibleEntry.getObjectValue().getClass());
             }
@@ -210,7 +208,7 @@ public class DNSCacheManager extends ConfigTestElement implements TestIterationL
         }
         CollectionProperty property = (CollectionProperty) p;
         for (JMeterProperty jMeterProperty : property) {
-            StaticHost entry = (StaticHost) ((TestElementProperty) jMeterProperty).getObjectValue();
+            StaticHost entry = (StaticHost) jMeterProperty.getObjectValue();
             if (!entry.getName().equals(host)) {
                 continue; // try the next property
             }
diff --git a/src/protocol/http/src/test/groovy/org/apache/jmeter/protocol/http/control/DNSCacheManagerSpec.groovy b/src/protocol/http/src/test/groovy/org/apache/jmeter/protocol/http/control/DNSCacheManagerSpec.groovy
index 51de58f..0ff63dc 100644
--- a/src/protocol/http/src/test/groovy/org/apache/jmeter/protocol/http/control/DNSCacheManagerSpec.groovy
+++ b/src/protocol/http/src/test/groovy/org/apache/jmeter/protocol/http/control/DNSCacheManagerSpec.groovy
@@ -17,23 +17,25 @@
 
 package org.apache.jmeter.protocol.http.control
 
-import org.apache.jmeter.junit.spock.JMeterSpec
 import org.xbill.DNS.ExtendedResolver
 import org.xbill.DNS.ResolverConfig
 
 import spock.lang.IgnoreIf
+import spock.lang.Requires
+import spock.lang.Specification
 
-class DNSCacheManagerSpec extends JMeterSpec {
+class DNSCacheManagerSpec extends Specification {
 
-    private static final String[] VALID_DNS_SERVERS  = ResolverConfig.getCurrentConfig().servers()
+    private static final String[] VALID_DNS_SERVERS = ResolverConfig.getCurrentConfig().servers()
     private static final String INVALID_DNS_SERVER = "512.1.1.1"
+    private static final String VALID_HOSTNAME = "jmeter.apache.org"
 
-    static def localDNSResolverFailed() {
+    private static final boolean localDNSResolverOK = {
         try {
             new DNSCacheManager().resolve("apache.org")
-            return false
-        } catch (UnknownHostException uhe) {
             return true
+        } catch (UnknownHostException uhe) {
+            return false
         }
     }
 
@@ -66,16 +68,16 @@ class DNSCacheManagerSpec extends JMeterSpec {
                      InetAddress.getByName("1.2.3.4")].toArray()
     }
 
-    @IgnoreIf({ DNSCacheManagerSpec.localDNSResolverFailed() })
+    @Requires({ localDNSResolverOK })
     def "Clear removes custom resolver status and any added hosts"() {
         given:
             sut.setCustomResolver(true)
-            sut.addHost("apache.jmeter.org", "127.0.0.1")
+            sut.addHost(VALID_HOSTNAME, "127.0.0.1")
             sut.clear()
         expect:
             // uses real DNS server
-            sut.resolve("jmeter.apache.org").contains(InetAddress.getByName("jmeter.apache.org"))
-            !sut.resolve("jmeter.apache.org").contains(InetAddress.getByName("127.0.0.1"))
+            sut.resolve(VALID_HOSTNAME).contains(InetAddress.getByName(VALID_HOSTNAME))
+            !sut.resolve(VALID_HOSTNAME).contains(InetAddress.getByName("127.0.0.1"))
     }
 
     def "If using an invalid server resolve throws UnknownHostException"() {
@@ -83,17 +85,15 @@ class DNSCacheManagerSpec extends JMeterSpec {
             sut.addServer(INVALID_DNS_SERVER)
             sut.setCustomResolver(true)
         when:
-            sut.resolve("jmeter.apache.org")
+            sut.resolve(VALID_HOSTNAME)
         then:
             thrown(UnknownHostException)
             sut.resolver == null
             sut.initFailed
     }
 
-    @IgnoreIf({
-        (Boolean.getBoolean("skip.test_TestDNSCacheManager.testWithCustomResolverAnd1Server")
-                || DNSCacheManagerSpec.localDNSResolverFailed())
-    })
+    @IgnoreIf({ Boolean.getBoolean("skip.test_TestDNSCacheManager.testWithCustomResolverAnd1Server") })
+    @Requires({ localDNSResolverOK })
     def "Valid DNS resolves and caches with custom resolve true"() {
         given:
             for (dns in VALID_DNS_SERVERS) {
@@ -102,7 +102,7 @@ class DNSCacheManagerSpec extends JMeterSpec {
             sut.setCustomResolver(true)
             sut.setTimeoutMs(5000)
         when:
-            sut.resolve("jmeter.apache.org")
+            sut.resolve(VALID_HOSTNAME)
         then:
             sut.resolver != null
             ((ExtendedResolver) sut.resolver).getResolvers().length == VALID_DNS_SERVERS.length
@@ -117,24 +117,23 @@ class DNSCacheManagerSpec extends JMeterSpec {
             sut.setCustomResolver(true)
             sut.setTimeoutMs(5000)
         when:
-            sut.cache.put("jmeter.apache.org", new InetAddress[0])
+            sut.cache.put(VALID_HOSTNAME, new InetAddress[0])
         then:
-            sut.resolve("jmeter.apache.org") == new InetAddress[0]
+            sut.resolve(VALID_HOSTNAME) == new InetAddress[0]
 
         when:
-            sut.cache.put("jmeter.apache.org", null)
+            sut.cache.put(VALID_HOSTNAME, null)
         then:
-            sut.resolve("jmeter.apache.org") == null
+            sut.resolve(VALID_HOSTNAME) == null
     }
 
-    @IgnoreIf({ DNSCacheManagerSpec.localDNSResolverFailed() })
+    @Requires({ localDNSResolverOK })
     def "set custom resolver but without an address should use system resolver"() {
         given:
             sut.setCustomResolver(true)
             sut.setTimeoutMs(5000)
         when:
-            // This will use Default System DNS resolver
-            sut.resolve("jmeter.apache.org")
+            sut.resolve(VALID_HOSTNAME)
         then:
             sut.resolver != null
             ((ExtendedResolver) sut.resolver).getResolvers().length == 0
@@ -147,14 +146,14 @@ class DNSCacheManagerSpec extends JMeterSpec {
             DNSCacheManager clone = (DNSCacheManager) sut.clone()
             clone.setTimeoutMs(5000)
         when:
-            clone.resolve("jmeter.apache.org")
+            clone.resolve(VALID_HOSTNAME)
         then:
             thrown(UnknownHostException)
             clone.resolver == sut.resolver
     }
 
-    @IgnoreIf({ DNSCacheManagerSpec.localDNSResolverFailed() })
-    def "Resolve Existing Host With System Default Dns Server"() {
+    @Requires({ localDNSResolverOK })
+    def "Resolve Existing Host With System Default DNS Server"() {
         given:
             sut.setCustomResolver(false)
         when:
@@ -165,7 +164,7 @@ class DNSCacheManagerSpec extends JMeterSpec {
             result.length > 0 // IPv4 and/or IPv6
     }
 
-    def "Resolve Non-existing Host With System Default Dns Server"() {
+    def "Resolve Non-existing Host With System Default DNS Server"() {
         given:
             sut.setCustomResolver(false)
         when: