From 82cb2a6497caa7c5e693aa41ad18e92f1c7eb16a Mon Sep 17 00:00:00 2001 From: Akira Ajisaka Date: Fri, 7 Jul 2017 14:55:46 +0900 Subject: [PATCH] HADOOP-14587. Use GenericTestUtils.setLogLevel when available in hadoop-common. Contributed by Wenxin He. --- .../fs/FileContextCreateMkdirBaseTest.java | 2 +- .../hadoop/fs/FileContextPermissionBase.java | 5 ++-- .../apache/hadoop/fs/FileContextUtilBase.java | 5 ++-- .../org/apache/hadoop/fs/TestListFiles.java | 4 +-- .../fs/TestLocalFileSystemPermission.java | 2 +- .../ha/TestActiveStandbyElectorRealZK.java | 7 ++--- .../hadoop/ha/TestSshFenceByTcpPort.java | 6 ++-- .../hadoop/ha/TestZKFailoverController.java | 5 ++-- .../serializer/TestSerializationFactory.java | 6 ++-- .../apache/hadoop/ipc/MiniRPCBenchmark.java | 13 ++++---- .../java/org/apache/hadoop/ipc/TestIPC.java | 5 ++-- .../hadoop/ipc/TestMiniRPCBenchmark.java | 2 +- .../java/org/apache/hadoop/ipc/TestRPC.java | 2 +- .../org/apache/hadoop/ipc/TestSaslRPC.java | 16 +++++----- .../hadoop/security/TestGroupFallback.java | 12 ++++---- .../hadoop/security/TestUGIWithMiniKdc.java | 2 +- .../security/TestUserGroupInformation.java | 2 +- .../hadoop/security/ssl/TestSSLFactory.java | 2 +- .../web/TestWebDelegationToken.java | 2 +- .../apache/hadoop/test/GenericTestUtils.java | 30 +++++++++++++++++++ .../hadoop/test/TestGenericTestUtils.java | 10 +++++++ .../hadoop/util/Crc32PerformanceTest.java | 11 +++---- hadoop-common-project/hadoop-nfs/pom.xml | 6 ++++ .../hadoop/oncrpc/TestFrameDecoder.java | 6 ++-- ...TestDFSStripedOutputStreamWithFailure.java | 28 +++++++++++++++++ 25 files changed, 132 insertions(+), 59 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextCreateMkdirBaseTest.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextCreateMkdirBaseTest.java index c1de27a347f..fbd598c9deb 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextCreateMkdirBaseTest.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextCreateMkdirBaseTest.java @@ -20,7 +20,6 @@ package org.apache.hadoop.fs; import java.io.IOException; -import org.apache.log4j.Level; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -30,6 +29,7 @@ import static org.apache.hadoop.fs.contract.ContractTestUtils.assertIsDirectory; import static org.apache.hadoop.fs.contract.ContractTestUtils.assertIsFile; import org.apache.hadoop.test.GenericTestUtils; +import org.slf4j.event.Level; /** *

diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextPermissionBase.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextPermissionBase.java index dff89f9669f..240989eea58 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextPermissionBase.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextPermissionBase.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; +import org.apache.hadoop.test.GenericTestUtils; import org.junit.Assert; import org.apache.hadoop.fs.permission.FsPermission; @@ -32,6 +33,7 @@ import org.apache.hadoop.util.StringUtils; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.slf4j.event.Level; import static org.apache.hadoop.fs.FileContextTestHelper.*; import static org.apache.hadoop.test.PlatformAssumptions.assumeNotWindows; @@ -61,8 +63,7 @@ public abstract class FileContextPermissionBase { { try { - ((org.apache.commons.logging.impl.Log4JLogger)FileSystem.LOG).getLogger() - .setLevel(org.apache.log4j.Level.DEBUG); + GenericTestUtils.setLogLevel(FileSystem.LOG, Level.DEBUG); } catch(Exception e) { System.out.println("Cannot change log level\n" diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextUtilBase.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextUtilBase.java index bebf4bfc48c..0a96d3e45ed 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextUtilBase.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextUtilBase.java @@ -23,10 +23,12 @@ import static org.junit.Assert.assertTrue; import java.util.Arrays; +import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.util.StringUtils; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.slf4j.event.Level; /** *

@@ -48,8 +50,7 @@ public abstract class FileContextUtilBase { { try { - ((org.apache.commons.logging.impl.Log4JLogger)FileSystem.LOG).getLogger() - .setLevel(org.apache.log4j.Level.DEBUG); + GenericTestUtils.setLogLevel(FileSystem.LOG, Level.DEBUG); } catch(Exception e) { System.out.println("Cannot change log level\n" + StringUtils.stringifyException(e)); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestListFiles.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestListFiles.java index 010754fe50a..44308ea6fc5 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestListFiles.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestListFiles.java @@ -24,18 +24,18 @@ import java.util.Set; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.test.GenericTestUtils; -import org.apache.log4j.Level; import static org.junit.Assert.*; import org.junit.Test; import org.junit.BeforeClass; +import org.slf4j.event.Level; /** * This class tests the FileStatus API. */ public class TestListFiles { static { - GenericTestUtils.setLogLevel(FileSystem.LOG, Level.ALL); + GenericTestUtils.setLogLevel(FileSystem.LOG, Level.TRACE); } static final long seed = 0xDEADBEEFL; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystemPermission.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystemPermission.java index 1478111a397..81756f9305f 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystemPermission.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystemPermission.java @@ -21,10 +21,10 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.permission.FsPermission; import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.util.Shell; -import org.apache.log4j.Level; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.slf4j.event.Level; import java.io.IOException; import java.util.ArrayList; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestActiveStandbyElectorRealZK.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestActiveStandbyElectorRealZK.java index 59c08868276..bbef9ef65b3 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestActiveStandbyElectorRealZK.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestActiveStandbyElectorRealZK.java @@ -24,12 +24,11 @@ import static org.junit.Assert.assertTrue; import java.util.Collections; import java.util.UUID; -import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.fs.CommonConfigurationKeys; import org.apache.hadoop.ha.ActiveStandbyElector.ActiveStandbyElectorCallback; import org.apache.hadoop.ha.ActiveStandbyElector.State; +import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.util.ZKUtil.ZKAuthInfo; -import org.apache.log4j.Level; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.ZooDefs.Ids; import org.apache.zookeeper.ZooKeeper; @@ -39,6 +38,7 @@ import org.mockito.AdditionalMatchers; import org.mockito.Mockito; import com.google.common.primitives.Ints; +import org.slf4j.event.Level; /** * Test for {@link ActiveStandbyElector} using real zookeeper. @@ -47,8 +47,7 @@ public class TestActiveStandbyElectorRealZK extends ClientBaseWithFixes { static final int NUM_ELECTORS = 2; static { - ((Log4JLogger)ActiveStandbyElector.LOG).getLogger().setLevel( - Level.ALL); + GenericTestUtils.setLogLevel(ActiveStandbyElector.LOG, Level.TRACE); } static final String PARENT_DIR = "/" + UUID.randomUUID(); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestSshFenceByTcpPort.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestSshFenceByTcpPort.java index 51fb8291b7a..f0ebc1ec846 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestSshFenceByTcpPort.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestSshFenceByTcpPort.java @@ -21,18 +21,18 @@ import static org.junit.Assert.*; import java.net.InetSocketAddress; -import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState; import org.apache.hadoop.ha.SshFenceByTcpPort.Args; -import org.apache.log4j.Level; +import org.apache.hadoop.test.GenericTestUtils; import org.junit.Assume; import org.junit.Test; +import org.slf4j.event.Level; public class TestSshFenceByTcpPort { static { - ((Log4JLogger)SshFenceByTcpPort.LOG).getLogger().setLevel(Level.ALL); + GenericTestUtils.setLogLevel(SshFenceByTcpPort.LOG, Level.TRACE); } private static String TEST_FENCING_HOST = System.getProperty( diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverController.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverController.java index 846c8aeb11f..0fa8e862ade 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverController.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverController.java @@ -22,7 +22,6 @@ import static org.junit.Assert.*; import java.security.NoSuchAlgorithmException; import com.google.common.base.Supplier; -import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState; import org.apache.hadoop.ha.HAServiceProtocol.StateChangeRequestInfo; @@ -30,7 +29,6 @@ import org.apache.hadoop.ha.HealthMonitor.State; import org.apache.hadoop.ha.MiniZKFCCluster.DummyZKFC; import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.util.Time; -import org.apache.log4j.Level; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.data.Stat; @@ -41,6 +39,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; import org.mockito.Mockito; +import org.slf4j.event.Level; public class TestZKFailoverController extends ClientBaseWithFixes { private Configuration conf; @@ -71,7 +70,7 @@ public class TestZKFailoverController extends ClientBaseWithFixes { "digest:" + DIGEST_USER_HASH + ":rwcda"; static { - ((Log4JLogger)ActiveStandbyElector.LOG).getLogger().setLevel(Level.ALL); + GenericTestUtils.setLogLevel(ActiveStandbyElector.LOG, Level.TRACE); } @Before diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/TestSerializationFactory.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/TestSerializationFactory.java index 6774155758d..2cde3e3ecc7 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/TestSerializationFactory.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/TestSerializationFactory.java @@ -18,21 +18,21 @@ package org.apache.hadoop.io.serializer; import org.apache.hadoop.io.LongWritable; +import org.apache.hadoop.test.GenericTestUtils; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNotNull; -import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeys; import org.apache.hadoop.io.Writable; -import org.apache.log4j.Level; +import org.slf4j.event.Level; public class TestSerializationFactory { static { - ((Log4JLogger) SerializationFactory.LOG).getLogger().setLevel(Level.ALL); + GenericTestUtils.setLogLevel(SerializationFactory.LOG, Level.TRACE); } static Configuration conf; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/MiniRPCBenchmark.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/MiniRPCBenchmark.java index cdbd5570f1b..2290270bfba 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/MiniRPCBenchmark.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/MiniRPCBenchmark.java @@ -26,9 +26,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Enumeration; +import org.apache.hadoop.test.GenericTestUtils; import org.junit.Assert; -import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.Text; import org.apache.hadoop.net.NetUtils; @@ -43,8 +43,7 @@ import org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSelect import org.apache.hadoop.security.token.delegation.TestDelegationToken.TestDelegationTokenIdentifier; import org.apache.hadoop.security.token.delegation.TestDelegationToken.TestDelegationTokenSecretManager; import org.apache.hadoop.util.Time; -import org.apache.log4j.Level; -import org.apache.log4j.LogManager; +import org.slf4j.event.Level; /** * MiniRPCBenchmark measures time to establish an RPC connection @@ -255,9 +254,9 @@ public class MiniRPCBenchmark { } static void setLoggingLevel(Level level) { - LogManager.getLogger(Server.class.getName()).setLevel(level); - ((Log4JLogger)Server.AUDITLOG).getLogger().setLevel(level); - LogManager.getLogger(Client.class.getName()).setLevel(level); + GenericTestUtils.setLogLevel(Server.LOG, level); + GenericTestUtils.setLogLevel(Server.AUDITLOG, level); + GenericTestUtils.setLogLevel(Client.LOG, level); } /** @@ -370,7 +369,7 @@ public class MiniRPCBenchmark { useDelegationToken = args[3].equalsIgnoreCase("useToken"); Level l = Level.ERROR; if(args.length > 4) - l = Level.toLevel(args[4]); + l = GenericTestUtils.toLevel(args[4]); MiniRPCBenchmark mb = new MiniRPCBenchmark(l); long elapsedTime = 0; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIPC.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIPC.java index 1d47473533d..4bda6377c53 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIPC.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestIPC.java @@ -60,7 +60,6 @@ import javax.net.SocketFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeys; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; @@ -85,7 +84,6 @@ import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod; import org.apache.hadoop.security.token.SecretManager.InvalidToken; import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.util.StringUtils; -import org.apache.log4j.Level; import org.junit.Assert; import org.junit.Assume; import org.junit.Before; @@ -98,6 +96,7 @@ import org.mockito.stubbing.Answer; import com.google.common.base.Supplier; import com.google.common.primitives.Bytes; import com.google.common.primitives.Ints; +import org.slf4j.event.Level; /** Unit tests for IPC. */ public class TestIPC { @@ -864,7 +863,7 @@ public class TestIPC { @Test(timeout=30000) public void testConnectionIdleTimeouts() throws Exception { - ((Log4JLogger)Server.LOG).getLogger().setLevel(Level.DEBUG); + GenericTestUtils.setLogLevel(Server.LOG, Level.DEBUG); final int maxIdle = 1000; final int cleanupInterval = maxIdle*3/4; // stagger cleanups final int killMax = 3; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestMiniRPCBenchmark.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestMiniRPCBenchmark.java index 0f34be8f575..a130fa9757a 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestMiniRPCBenchmark.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestMiniRPCBenchmark.java @@ -18,8 +18,8 @@ package org.apache.hadoop.ipc; import org.apache.hadoop.conf.Configuration; -import org.apache.log4j.Level; import org.junit.Test; +import org.slf4j.event.Level; /** * Test {@link MiniRPCBenchmark} diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java index 166b205714e..8725cf426a3 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java @@ -50,11 +50,11 @@ import org.apache.hadoop.security.token.TokenIdentifier; import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.test.MetricsAsserts; import org.apache.hadoop.test.MockitoUtil; -import org.apache.log4j.Level; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import org.mockito.internal.util.reflection.Whitebox; +import org.slf4j.event.Level; import javax.net.SocketFactory; import java.io.Closeable; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java index c48ff2e1864..7608cb439a7 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java @@ -22,7 +22,6 @@ import com.google.protobuf.ServiceException; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeys; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; @@ -36,7 +35,7 @@ import org.apache.hadoop.security.SaslRpcServer.QualityOfProtection; import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod; import org.apache.hadoop.security.token.*; import org.apache.hadoop.security.token.SecretManager.InvalidToken; -import org.apache.log4j.Level; +import org.apache.hadoop.test.GenericTestUtils; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; @@ -44,6 +43,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; +import org.slf4j.event.Level; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; @@ -186,12 +186,12 @@ public class TestSaslRPC extends TestRpcBase { } static { - ((Log4JLogger) Client.LOG).getLogger().setLevel(Level.ALL); - ((Log4JLogger) Server.LOG).getLogger().setLevel(Level.ALL); - ((Log4JLogger) SaslRpcClient.LOG).getLogger().setLevel(Level.ALL); - ((Log4JLogger) SaslRpcServer.LOG).getLogger().setLevel(Level.ALL); - ((Log4JLogger) SaslInputStream.LOG).getLogger().setLevel(Level.ALL); - ((Log4JLogger) SecurityUtil.LOG).getLogger().setLevel(Level.ALL); + GenericTestUtils.setLogLevel(Client.LOG, Level.TRACE); + GenericTestUtils.setLogLevel(Server.LOG, Level.TRACE); + GenericTestUtils.setLogLevel(SaslRpcClient.LOG, Level.TRACE); + GenericTestUtils.setLogLevel(SaslRpcServer.LOG, Level.TRACE); + GenericTestUtils.setLogLevel(SaslInputStream.LOG, Level.TRACE); + GenericTestUtils.setLogLevel(SecurityUtil.LOG, Level.TRACE); } public static class BadTokenSecretManager extends TestTokenSecretManager { diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestGroupFallback.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestGroupFallback.java index a61eee64093..85f17b16392 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestGroupFallback.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestGroupFallback.java @@ -25,16 +25,16 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeys; -import org.apache.log4j.Level; -import org.apache.log4j.Logger; +import org.apache.hadoop.test.GenericTestUtils; import org.junit.Test; +import org.slf4j.event.Level; public class TestGroupFallback { public static final Log LOG = LogFactory.getLog(TestGroupFallback.class); @Test public void testGroupShell() throws Exception { - Logger.getRootLogger().setLevel(Level.DEBUG); + GenericTestUtils.setRootLogLevel(Level.DEBUG); Configuration conf = new Configuration(); conf.set(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING, "org.apache.hadoop.security.ShellBasedUnixGroupsMapping"); @@ -50,7 +50,7 @@ public class TestGroupFallback { @Test public void testNetgroupShell() throws Exception { - Logger.getRootLogger().setLevel(Level.DEBUG); + GenericTestUtils.setRootLogLevel(Level.DEBUG); Configuration conf = new Configuration(); conf.set(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING, "org.apache.hadoop.security.ShellBasedUnixGroupsNetgroupMapping"); @@ -69,7 +69,7 @@ public class TestGroupFallback { LOG.info("running 'mvn -Pnative -DTestGroupFallback clear test' will " + "test the normal path and 'mvn -DTestGroupFallback clear test' will" + " test the fall back functionality"); - Logger.getRootLogger().setLevel(Level.DEBUG); + GenericTestUtils.setRootLogLevel(Level.DEBUG); Configuration conf = new Configuration(); conf.set(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING, "org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback"); @@ -88,7 +88,7 @@ public class TestGroupFallback { LOG.info("running 'mvn -Pnative -DTestGroupFallback clear test' will " + "test the normal path and 'mvn -DTestGroupFallback clear test' will" + " test the fall back functionality"); - Logger.getRootLogger().setLevel(Level.DEBUG); + GenericTestUtils.setRootLogLevel(Level.DEBUG); Configuration conf = new Configuration(); conf.set(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING, "org.apache.hadoop.security.JniBasedUnixGroupsNetgroupMappingWithFallback"); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUGIWithMiniKdc.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUGIWithMiniKdc.java index 2c6c7e4b9c4..6c94b1da648 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUGIWithMiniKdc.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUGIWithMiniKdc.java @@ -23,9 +23,9 @@ import org.apache.hadoop.security.authentication.util.KerberosUtil; import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.test.LambdaTestUtils; import org.apache.hadoop.util.PlatformName; -import org.apache.log4j.Level; import org.junit.After; import org.junit.Test; +import org.slf4j.event.Level; import javax.security.auth.Subject; import javax.security.auth.kerberos.KerberosPrincipal; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java index 00062c0a37f..bcb2126c061 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/TestUserGroupInformation.java @@ -33,7 +33,6 @@ import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.util.Shell; import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.util.Time; -import org.apache.log4j.Level; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -41,6 +40,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.slf4j.event.Level; import javax.security.auth.Subject; import javax.security.auth.kerberos.KerberosPrincipal; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/ssl/TestSSLFactory.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/ssl/TestSSLFactory.java index 5369c9d8d5e..4f1aca068d6 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/ssl/TestSSLFactory.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/ssl/TestSSLFactory.java @@ -26,7 +26,6 @@ import org.apache.hadoop.security.alias.CredentialProviderFactory; import org.apache.hadoop.security.alias.JavaKeyStoreProvider; import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.util.StringUtils; -import org.apache.log4j.Level; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -34,6 +33,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.slf4j.event.Level; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLEngine; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/delegation/web/TestWebDelegationToken.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/delegation/web/TestWebDelegationToken.java index 7319e4ca2bc..c564b975f5d 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/delegation/web/TestWebDelegationToken.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/security/token/delegation/web/TestWebDelegationToken.java @@ -32,7 +32,6 @@ import org.apache.hadoop.security.authentication.server.PseudoAuthenticationHand import org.apache.hadoop.security.authentication.util.KerberosUtil; import org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager; import org.apache.hadoop.test.GenericTestUtils; -import org.apache.log4j.Level; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.servlet.ServletContextHandler; @@ -42,6 +41,7 @@ import org.junit.Before; import org.junit.Test; import org.eclipse.jetty.servlet.FilterHolder; import org.eclipse.jetty.servlet.ServletHolder; +import org.slf4j.event.Level; import javax.security.auth.Subject; import javax.security.auth.kerberos.KerberosPrincipal; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/GenericTestUtils.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/GenericTestUtils.java index 77a79ff140c..82a5e08b03d 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/GenericTestUtils.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/GenericTestUtils.java @@ -140,6 +140,20 @@ public abstract class GenericTestUtils { setLogLevel((Log4JLogger) log, level); } + /** + * A helper used in log4j2 migration to accept legacy + * org.apache.commons.logging apis. + *

+ * And will be removed after migration. + * + * @param log a log + * @param level level to be set + */ + @Deprecated + public static void setLogLevel(Log log, org.slf4j.event.Level level) { + setLogLevel(log, Level.toLevel(level.toString())); + } + /** * @deprecated * use {@link #setLogLevel(org.slf4j.Logger, org.slf4j.event.Level)} instead @@ -172,6 +186,22 @@ public abstract class GenericTestUtils { setLogLevel(toLog4j(logger), Level.toLevel(level.toString())); } + public static void setRootLogLevel(org.slf4j.event.Level level) { + setLogLevel(LogManager.getRootLogger(), Level.toLevel(level.toString())); + } + + public static org.slf4j.event.Level toLevel(String level) { + return toLevel(level, org.slf4j.event.Level.DEBUG); + } + + public static org.slf4j.event.Level toLevel( + String level, org.slf4j.event.Level defaultLevel) { + try { + return org.slf4j.event.Level.valueOf(level); + } catch (IllegalArgumentException e) { + return defaultLevel; + } + } /** * Extracts the name of the method where the invocation has happened * @return String name of the invoking method diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/TestGenericTestUtils.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/TestGenericTestUtils.java index b3fc836d5fb..c1d45ccd298 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/TestGenericTestUtils.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/test/TestGenericTestUtils.java @@ -27,7 +27,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.base.Supplier; +import org.slf4j.event.Level; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -151,4 +153,12 @@ public class TestGenericTestUtils extends GenericTestUtils { assertExceptionContains(GenericTestUtils.ERROR_INVALID_ARGUMENT, e); } } + + @Test + public void testToLevel() throws Throwable { + assertEquals(Level.INFO, toLevel("INFO")); + assertEquals(Level.DEBUG, toLevel("NonExistLevel")); + assertEquals(Level.INFO, toLevel("INFO", Level.TRACE)); + assertEquals(Level.TRACE, toLevel("NonExistLevel", Level.TRACE)); + } } diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/Crc32PerformanceTest.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/Crc32PerformanceTest.java index 34dfc3a6db4..ce28f503a84 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/Crc32PerformanceTest.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/Crc32PerformanceTest.java @@ -27,10 +27,11 @@ import java.util.Random; import java.util.zip.CRC32; import java.util.zip.Checksum; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.fs.ChecksumException; -import org.apache.log4j.Level; +import org.apache.hadoop.test.GenericTestUtils; +import org.slf4j.event.Level; + +import static org.slf4j.LoggerFactory.getLogger; /** * Performance tests to compare performance of Crc32|Crc32C implementations @@ -176,8 +177,8 @@ public class Crc32PerformanceTest { crcs.add(Crc32.Native.class); } crcs.add(Crc32.NativeC.class); - ((Log4JLogger)LogFactory.getLog(NativeCodeLoader.class)) - .getLogger().setLevel(Level.ALL); + GenericTestUtils.setLogLevel(getLogger(NativeCodeLoader.class), + Level.TRACE); } } diff --git a/hadoop-common-project/hadoop-nfs/pom.xml b/hadoop-common-project/hadoop-nfs/pom.xml index 5fdaf44aba3..bd5ab924f84 100644 --- a/hadoop-common-project/hadoop-nfs/pom.xml +++ b/hadoop-common-project/hadoop-nfs/pom.xml @@ -47,6 +47,12 @@ hadoop-common provided + + org.apache.hadoop + hadoop-common + test + test-jar + junit junit diff --git a/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/oncrpc/TestFrameDecoder.java b/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/oncrpc/TestFrameDecoder.java index 9d0fe0fdd79..0e416b3738d 100644 --- a/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/oncrpc/TestFrameDecoder.java +++ b/hadoop-common-project/hadoop-nfs/src/test/java/org/apache/hadoop/oncrpc/TestFrameDecoder.java @@ -28,8 +28,7 @@ import java.util.Random; import org.apache.hadoop.oncrpc.RpcUtil.RpcFrameDecoder; import org.apache.hadoop.oncrpc.security.CredentialsNone; import org.apache.hadoop.oncrpc.security.VerifierNone; -import org.apache.log4j.Level; -import org.apache.commons.logging.impl.Log4JLogger; +import org.apache.hadoop.test.GenericTestUtils; import org.jboss.netty.buffer.ByteBufferBackedChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; @@ -38,11 +37,12 @@ import org.jboss.netty.channel.ChannelException; import org.jboss.netty.channel.ChannelHandlerContext; import org.junit.Test; import org.mockito.Mockito; +import org.slf4j.event.Level; public class TestFrameDecoder { static { - ((Log4JLogger) RpcProgram.LOG).getLogger().setLevel(Level.ALL); + GenericTestUtils.setLogLevel(RpcProgram.LOG, Level.TRACE); } private static int resultSize; diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java index 9915a2fb6d9..5b99d455713 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSStripedOutputStreamWithFailure.java @@ -390,6 +390,34 @@ public class TestDFSStripedOutputStreamWithFailure { } } + /** + * When all the two DataNodes with partial data block fail + */ + @Test + public void runTestWithMultipleFailure2() throws Exception { + final HdfsConfiguration conf = newHdfsConfiguration(); + // two DNs have cellSize and the other DNs have cellSize*2 + final int length = cellSize * (dataBlocks * 2 - 2); + // select the two DNs with partial block to kill + final int[] dnIndex = {dataBlocks - 2, dataBlocks - 1}; + final int[] killPos = getKillPositions(length, dnIndex.length); + + try { + LOG.info("runTestWithMultipleFailure2: length==" + length + ", killPos=" + + Arrays.toString(killPos) + ", dnIndex=" + + Arrays.toString(dnIndex)); + setup(conf); + runTest(length, killPos, dnIndex, false); + } catch (Throwable e) { + final String err = "failed, killPos=" + Arrays.toString(killPos) + + ", dnIndex=" + Arrays.toString(dnIndex) + ", length=" + length; + LOG.error(err); + throw e; + } finally { + tearDown(); + } + } + /** * runTest implementation. * @param length file length