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,


Reply via email to