From 29cf29a8535f0526e7494631e975545d0b4923e8 Mon Sep 17 00:00:00 2001 From: Inigo Goiri Date: Mon, 12 Mar 2018 09:58:56 -0700 Subject: [PATCH] HDFS-11399. Many tests fails in Windows due to injecting disk failures. Contributed by Yiqun Lin. (cherry picked from commit ac627f561f0946e98a650850fb507536cbd2f2c4) --- .../server/blockmanagement/TestBlockStatsMXBean.java | 5 +++++ .../server/datanode/TestDataNodeVolumeFailure.java | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockStatsMXBean.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockStatsMXBean.java index 64364cb3038..11bfff8ef0f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockStatsMXBean.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockStatsMXBean.java @@ -17,6 +17,7 @@ */ package org.apache.hadoop.hdfs.server.blockmanagement; +import static org.apache.hadoop.test.PlatformAssumptions.assumeNotWindows; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -160,6 +161,10 @@ public class TestBlockStatsMXBean { @Test public void testStorageTypeStatsWhenStorageFailed() throws Exception { + // The test uses DataNodeTestUtils#injectDataDirFailure() to simulate + // volume failures which is currently not supported on Windows. + assumeNotWindows(); + DFSTestUtil.createFile(cluster.getFileSystem(), new Path("/blockStatsFile1"), 1024, (short) 1, 0L); Map storageTypeStatsMap = cluster diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailure.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailure.java index e73337b082f..6385367c1dd 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailure.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailure.java @@ -293,6 +293,10 @@ public class TestDataNodeVolumeFailure { @Test(timeout=10000) public void testDataNodeShutdownAfterNumFailedVolumeExceedsTolerated() throws Exception { + // The test uses DataNodeTestUtils#injectDataDirFailure() to simulate + // volume failures which is currently not supported on Windows. + assumeNotWindows(); + // make both data directories to fail on dn0 final File dn0Vol1 = new File(dataDir, "data" + (2 * 0 + 1)); final File dn0Vol2 = new File(dataDir, "data" + (2 * 0 + 2)); @@ -314,6 +318,10 @@ public class TestDataNodeVolumeFailure { @Test public void testVolumeFailureRecoveredByHotSwappingVolume() throws Exception { + // The test uses DataNodeTestUtils#injectDataDirFailure() to simulate + // volume failures which is currently not supported on Windows. + assumeNotWindows(); + final File dn0Vol1 = new File(dataDir, "data" + (2 * 0 + 1)); final File dn0Vol2 = new File(dataDir, "data" + (2 * 0 + 2)); final DataNode dn0 = cluster.getDataNodes().get(0); @@ -354,6 +362,10 @@ public class TestDataNodeVolumeFailure { @Test public void testTolerateVolumeFailuresAfterAddingMoreVolumes() throws Exception { + // The test uses DataNodeTestUtils#injectDataDirFailure() to simulate + // volume failures which is currently not supported on Windows. + assumeNotWindows(); + final File dn0Vol1 = new File(dataDir, "data" + (2 * 0 + 1)); final File dn0Vol2 = new File(dataDir, "data" + (2 * 0 + 2)); final File dn0VolNew = new File(dataDir, "data_new");