From b6f20c36c2f221f64ff4197903303236644c7be5 Mon Sep 17 00:00:00 2001 From: Konstantin V Shvachko Date: Tue, 16 Oct 2018 16:35:02 -0700 Subject: [PATCH] HDFS-13925. Unit Test for transitioning between different states. Contributed by Sherwood Zheng. --- .../server/namenode/ha/TestObserverNode.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverNode.java index 28fd330be4..b18c5b8e1a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverNode.java @@ -20,6 +20,7 @@ import static org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter.getServiceState; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyBoolean; import static org.mockito.Matchers.anyLong; @@ -30,11 +31,13 @@ import java.net.URI; import java.util.ArrayList; import java.util.List; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.permission.FsPermission; import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState; +import org.apache.hadoop.ha.ServiceFailedException; import org.apache.hadoop.hdfs.DistributedFileSystem; import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.hadoop.hdfs.protocol.Block; @@ -99,6 +102,26 @@ public static void shutDownCluster() throws IOException { } } + @Test + public void testNoActiveToObserver() throws Exception { + try { + dfsCluster.transitionToObserver(0); + } catch (ServiceFailedException e) { + return; + } + fail("active cannot be transitioned to observer"); + } + + @Test + public void testNoObserverToActive() throws Exception { + try { + dfsCluster.transitionToActive(2); + } catch (ServiceFailedException e) { + return; + } + fail("observer cannot be transitioned to active"); + } + @Test public void testSimpleRead() throws Exception { Path testPath2 = new Path(testPath, "test2");