Author: nspiegelberg Date: Wed Jan 4 23:46:09 2012 New Revision: 1227389 URL: http://svn.apache.org/viewvc?rev=1227389&view=rev Log: [jira] [HBASE-5031] [89-fb] Remove hard-coded non-existent host name from TestScanner
Summary: TestScanner is failing on 0.89-fb because it has a hard-coded fake host name that it is trying to look up. Replacing this with 127.0.0.1:<random_port> instead. Reviewed at https://reviews.facebook.net/D867. Test Plan: Run TestScanner Reviewers: Liyin, Kannan, JIRA Reviewed By: Liyin CC: Liyin Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java?rev=1227389&r1=1227388&r2=1227389&view=diff ============================================================================== --- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java (original) +++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java Wed Jan 4 23:46:09 2012 @@ -26,6 +26,7 @@ import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Field; +import java.net.ServerSocket; import java.security.MessageDigest; import java.util.ArrayList; import java.util.Arrays; @@ -1234,4 +1235,31 @@ public class HBaseTestingUtility { return table; } + + private static final int MIN_RANDOM_PORT = 0xc000; + private static final int MAX_RANDOM_PORT = 0xfffe; + + /** + * Returns a random port. These ports cannot be registered with IANA and are + * intended for dynamic allocation (see http://bit.ly/dynports). + */ + public static int randomPort() { + return MIN_RANDOM_PORT + + new Random().nextInt(MAX_RANDOM_PORT - MIN_RANDOM_PORT); + } + + public static int randomFreePort() { + int port = 0; + do { + port = randomPort(); + try { + ServerSocket sock = new ServerSocket(port); + sock.close(); + } catch (IOException ex) { + port = 0; + } + } while (port == 0); + return port; + } + } Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java?rev=1227389&r1=1227388&r2=1227389&view=diff ============================================================================== --- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java (original) +++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanner.java Wed Jan 4 23:46:09 2012 @@ -28,6 +28,7 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.HBaseTestCase; +import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; @@ -51,6 +52,7 @@ import org.apache.hadoop.hdfs.MiniDFSClu /** * Test of a long-lived scanner validating as we go. */ +@SuppressWarnings("deprecation") public class TestScanner extends HBaseTestCase { private final Log LOG = LogFactory.getLog(this.getClass()); @@ -263,7 +265,8 @@ public class TestScanner extends HBaseTe // Store some new information - HServerAddress address = new HServerAddress("foo.bar.com:1234"); + HServerAddress address = new HServerAddress("127.0.0.1:" + + HBaseTestingUtility.randomFreePort()); put = new Put(ROW_KEY, System.currentTimeMillis(), null); put.add(HConstants.CATALOG_FAMILY, HConstants.SERVER_QUALIFIER,
