Преглед на файлове

HDFS-3129. NetworkTopology: add test that getLeaf should check for invalid topologies. Contributed by Colin Patrick McCabe

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1@1305627 13f79535-47bb-0310-9956-ffa450edef68
Eli Collins преди 13 години
родител
ревизия
f339ea6fd8
променени са 2 файла, в които са добавени 22 реда и са изтрити 0 реда
  1. 3 0
      CHANGES.txt
  2. 19 0
      src/test/org/apache/hadoop/net/TestNetworkTopology.java

+ 3 - 0
CHANGES.txt

@@ -175,6 +175,9 @@ Release 1.1.0 - unreleased
     HADOOP-8159. NetworkTopology: getLeaf should check for invalid topologies.
     (Colin Patrick McCabe via eli)    
 
+    HDFS-3129. NetworkTopology: add test that getLeaf should check for
+    invalid topologies. (Colin Patrick McCabe via eli)
+
 Release 1.0.3 - unreleased
 
   NEW FEATURES

+ 19 - 0
src/test/org/apache/hadoop/net/TestNetworkTopology.java

@@ -58,6 +58,25 @@ public class TestNetworkTopology extends TestCase {
     assertEquals(cluster.getNumOfLeaves(), dataNodes.length);
   }
 
+  public void testCreateInvalidTopology() throws Exception {
+    NetworkTopology invalCluster = new NetworkTopology();
+    DatanodeDescriptor invalDataNodes[] = new DatanodeDescriptor[] {
+      new DatanodeDescriptor(new DatanodeID("h1:5020"), "/d1/r1"),
+      new DatanodeDescriptor(new DatanodeID("h2:5020"), "/d1/r1"),
+      new DatanodeDescriptor(new DatanodeID("h3:5020"), "/d1")
+    };
+    invalCluster.add(invalDataNodes[0]);
+    invalCluster.add(invalDataNodes[1]);
+    try {
+      invalCluster.add(invalDataNodes[2]);
+      fail("expected InvalidTopologyException");
+    } catch (NetworkTopology.InvalidTopologyException e) {
+      assertEquals(e.getMessage(), "Invalid network topology. " +
+          "You cannot have a rack and a non-rack node at the same " +
+          "level of the network topology.");
+    }
+  }
+
   public void testRacks() throws Exception {
     assertEquals(cluster.getNumOfRacks(), 3);
     assertTrue(cluster.isOnSameRack(dataNodes[0], dataNodes[1]));