From 43f9e2f2b07c0e143de6ea011c448cfc81ec3003 Mon Sep 17 00:00:00 2001 From: Andrew Bayer Date: Fri, 22 Jul 2011 20:03:38 +0000 Subject: [PATCH] Added unit test to check network setup needed for postgres tests. From: Aaron Kimball git-svn-id: https://svn.apache.org/repos/asf/incubator/sqoop/trunk@1149871 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/hadoop/sqoop/SmokeTests.java | 2 + .../sqoop/util/TestDirectImportUtils.java | 67 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 src/test/org/apache/hadoop/sqoop/util/TestDirectImportUtils.java diff --git a/src/test/org/apache/hadoop/sqoop/SmokeTests.java b/src/test/org/apache/hadoop/sqoop/SmokeTests.java index 8352a382..6aadf3c2 100644 --- a/src/test/org/apache/hadoop/sqoop/SmokeTests.java +++ b/src/test/org/apache/hadoop/sqoop/SmokeTests.java @@ -31,6 +31,7 @@ import org.apache.hadoop.sqoop.mapreduce.MapreduceTests; import org.apache.hadoop.sqoop.orm.TestClassWriter; import org.apache.hadoop.sqoop.orm.TestParseMethods; +import org.apache.hadoop.sqoop.util.TestDirectImportUtils; import junit.framework.Test; import junit.framework.TestSuite; @@ -66,6 +67,7 @@ public static Test suite() { suite.addTestSuite(TestBlobRef.class); suite.addTestSuite(TestClobRef.class); suite.addTestSuite(TestLargeObjectLoader.class); + suite.addTestSuite(TestDirectImportUtils.class); suite.addTest(MapreduceTests.suite()); return suite; diff --git a/src/test/org/apache/hadoop/sqoop/util/TestDirectImportUtils.java b/src/test/org/apache/hadoop/sqoop/util/TestDirectImportUtils.java new file mode 100644 index 00000000..00b2d51c --- /dev/null +++ b/src/test/org/apache/hadoop/sqoop/util/TestDirectImportUtils.java @@ -0,0 +1,67 @@ +/** + * Licensed to Cloudera, Inc. under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. Cloudera, Inc. licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.sqoop.util; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.UnknownHostException; + +import junit.framework.TestCase; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * Test that /etc/hosts is configured sanely. + * If this fails, then the postgresql direct tests will likely fail. + * + * In particular, 'localhost' needs to resolve to 127.0.0.1. + * The /etc/hosts file should contain a line like: + * + * 127.0.0.1 (yourhostnamehere) localhost + * + * e.g.: + * 127.0.0.1 aaron-laptop localhost + * 127.0.1.1 aaron-laptop + * ... + * + * If it doesn't have 'localhost' on that line, it'll fail. + */ +public class TestDirectImportUtils extends TestCase { + + public static final Log LOG = LogFactory.getLog( + TestDirectImportUtils.class.getName()); + + public void testLocalhost() throws UnknownHostException { + InetAddress localHostAddr = InetAddress.getLocalHost(); + LOG.info("Advertised localhost address: " + localHostAddr); + + InetAddress requestAddr = InetAddress.getByName("localhost"); + LOG.info("Requested localhost address: " + requestAddr); + + assertTrue("Requested addr does not identify as localhost. " + + "Check /etc/hosts (see TestDirectImportUtils comments)", + localHostAddr.equals(requestAddr)); + + assertTrue("Couldn't match 'localhost' to localhost; " + + "check /etc/hosts (see TestDirectImportUtils comments)", + DirectImportUtils.isLocalhost("localhost")); + } +} +