Some unit tests require a direct network connection to internet hosts.

Description

After running the unit tests on a system with no direct internet access, there are some unit tests that fail because they cannot establish a direct connection with a host on the internet.

It would be nice to have a run time flag (runExternalTests?) that could be used to enable/disable these from running.

testHttps(org.opennms.netmgt.poller.monitors.PageSequenceMonitorTest) Time elapsed: 25.193 sec <<< FAILURE!
java.lang.AssertionError: Expected available but was Down: reason = I/O Error org.apache.http.conn.ConnectTimeoutException: Connect to scgi.ebay.com:443 timed out
at org.junit.Assert.fail(Assert.java:93)
at org.junit.Assert.assertTrue(Assert.java:43)
at org.opennms.netmgt.poller.monitors.PageSequenceMonitorTest.testHttps(PageSequenceMonitorTest.java:137)

testHttpsWithoutHostValidation(org.opennms.netmgt.poller.monitors.PageSequenceMonitorTest) Time elapsed: 8.903 sec <<< FAILURE!
java.lang.AssertionError: Expected available but was Down: reason = I/O Error org.apache.http.conn.ConnectTimeoutException: Connect to 66.211.181.50:443 timed out
at org.junit.Assert.fail(Assert.java:93)
at org.junit.Assert.assertTrue(Assert.java:43)
at org.opennms.netmgt.poller.monitors.PageSequenceMonitorTest.testHttpsWithoutHostValidation(PageSequenceMonitorTest.java:169)

testVirtualHost(org.opennms.netmgt.poller.monitors.PageSequenceMonitorTest) Time elapsed: 8.76 sec <<< FAILURE!
java.lang.AssertionError: Expected available but was Down: reason = I/O Error org.apache.http.conn.ConnectTimeoutException: Connect to 64.146.64.212:80 timed out
at org.junit.Assert.fail(Assert.java:93)
at org.junit.Assert.assertTrue(Assert.java:43)
at org.opennms.netmgt.poller.monitors.PageSequenceMonitorTest.testVirtualHost(PageSequenceMonitorTest.java:218)

testGet(org.opennms.netmgt.ticketer.jira.JiraTicketerPluginTest) Time elapsed: 510.799 sec <<< ERROR!
com.atlassian.jira.rest.client.RestClientException: com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:249)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at com.sun.jersey.client.apache.DefaultApacheHttpMethodExecutor.executeMethod(DefaultApacheHttpMethodExecutor.java:210)
at com.sun.jersey.client.apache.ApacheHttpClientHandler.handle(ApacheHttpClientHandler.java:175)
at com.sun.jersey.api.client.Client.handle(Client.java:648)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)
at com.sun.jersey.api.client.WebResource.get(WebResource.java:191)
at com.atlassian.jira.rest.client.internal.jersey.AbstractJerseyRestClient$1.call(AbstractJerseyRestClient.java:84)
at com.atlassian.jira.rest.client.internal.jersey.AbstractJerseyRestClient.invoke(AbstractJerseyRestClient.java:54)
at com.atlassian.jira.rest.client.internal.jersey.AbstractJerseyRestClient.getAndParse(AbstractJerseyRestClient.java:80)
at com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.getIssue(JerseyIssueRestClient.java:146)
at com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.getIssue(JerseyIssueRestClient.java:137)
at org.opennms.netmgt.ticketer.jira.JiraTicketerPlugin.get(JiraTicketerPlugin.java:104)
at org.opennms.netmgt.ticketer.jira.JiraTicketerPluginTest.testGet(JiraTicketerPluginTest.java:128)

testButtonClick(org.opennms.features.topology.ssh.internal.AuthWindowTest) Time elapsed: 60.914 sec <<< FAILURE!
org.junit.ComparisonFailure: expected:<Failed to [log in]> but was:<Failed to [connect to host]>
at org.junit.Assert.assertEquals(Assert.java:125)
at org.junit.Assert.assertEquals(Assert.java:147)
at org.opennms.features.topology.ssh.internal.AuthWindowTest.testButtonClick(AuthWindowTest.java:88)

Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 121.049 sec <<< FAILURE!
testAttach(org.opennms.features.topology.ssh.internal.SSHWindowTest) Time elapsed: 60.806 sec <<< FAILURE!
java.lang.AssertionError: Could not connect to host
at org.junit.Assert.fail(Assert.java:93)
at org.opennms.features.topology.ssh.internal.SSHWindowTest.setup(SSHWindowTest.java:65)

testClose(org.opennms.features.topology.ssh.internal.SSHWindowTest) Time elapsed: 60.129 sec <<< FAILURE!
java.lang.AssertionError: Could not connect to host
at org.junit.Assert.fail(Assert.java:93)
at org.opennms.features.topology.ssh.internal.SSHWindowTest.setup(SSHWindowTest.java:65)

Tests run: 3, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 181.411 sec <<< FAILURE!
testPaintContent(org.opennms.features.topology.ssh.internal.SSHTerminalTest) Time elapsed: 60.689 sec <<< FAILURE!
java.lang.AssertionError: Could not connect to host
at org.junit.Assert.fail(Assert.java:93)
at org.opennms.features.topology.ssh.internal.SSHTerminalTest.setUp(SSHTerminalTest.java:76)

testChangeVariables(org.opennms.features.topology.ssh.internal.SSHTerminalTest) Time elapsed: 60.314 sec <<< FAILURE!
java.lang.AssertionError: Could not connect to host
at org.junit.Assert.fail(Assert.java:93)
at org.opennms.features.topology.ssh.internal.SSHTerminalTest.setUp(SSHTerminalTest.java:76)

testClose(org.opennms.features.topology.ssh.internal.SSHTerminalTest) Time elapsed: 60.299 sec <<< FAILURE!
java.lang.AssertionError: Could not connect to host
at org.junit.Assert.fail(Assert.java:93)
at org.opennms.features.topology.ssh.internal.SSHTerminalTest.setUp(SSHTerminalTest.java:76)

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Show:

Ron Roskens August 19, 2014 at 10:43 PM

A possible solution to grouping tests is the Suites & Categories that you can use to group unit & integration tests:

https://github.com/junit-team/junit/wiki/Aggregating-tests-in-suites

https://github.com/junit-team/junit/wiki/Categories

Ron Roskens August 19, 2014 at 8:09 PM

opennms-services:
DNSResolutionMonitorTest - unit test does DNS lookups which fail when offline.
PollerConfigWithPSMTest - unit test does DNS lookups which fail when offline.

opennms-rrd/opennms-rrd-model:
RrdConvertUtilsTest,RrdMergeTest,RRDv3Test - unit test fails because it cannot do hostname lookup of oss.oetiker.ch to download the rrdtool.dtd.

Seth Leger November 21, 2013 at 9:49 PM

Thanks a lot for documenting these failures. We should have a profile of some sort in the build that disables them when there is no outgoing internet connection.

Details

Assignee

Reporter

Labels

Doc Backlog Status

Doc Backlog Grooming Date

Components

Affects versions

Priority

PagerDuty

Created May 31, 2013 at 12:57 PM
Updated September 21, 2021 at 9:18 PM