HDFS-10318. TestJMXGet hides the real error in case of test failure. Contributed by Andras Bokor.

(cherry picked from commit 10f0f7851a)
This commit is contained in:
Kihwal Lee 2016-04-25 11:41:40 -05:00
parent 5bceaa9683
commit f6bd9e07d2
1 changed files with 12 additions and 4 deletions

View File

@ -31,6 +31,7 @@ import java.io.PrintStream;
import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import java.util.Random; import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.concurrent.TimeoutException;
import javax.management.MBeanServerConnection; import javax.management.MBeanServerConnection;
import javax.management.ObjectName; import javax.management.ObjectName;
@ -55,6 +56,7 @@ import org.junit.Test;
* *
*/ */
public class TestJMXGet { public class TestJMXGet {
public static final String WRONG_METRIC_VALUE_ERROR_MSG = "Unable to get the correct value for %s.";
private Configuration config; private Configuration config;
private MiniDFSCluster cluster; private MiniDFSCluster cluster;
@ -118,9 +120,12 @@ public class TestJMXGet {
assertTrue("error printAllValues", checkPrintAllValues(jmx)); assertTrue("error printAllValues", checkPrintAllValues(jmx));
//get some data from different source //get some data from different source
try {
DFSTestUtil.waitForMetric(jmx, "NumLiveDataNodes", numDatanodes); DFSTestUtil.waitForMetric(jmx, "NumLiveDataNodes", numDatanodes);
assertEquals(numDatanodes, Integer.parseInt( } catch (TimeoutException e) {
assertEquals(String.format(WRONG_METRIC_VALUE_ERROR_MSG, "NumLiveDataNodes"),numDatanodes, Integer.parseInt(
jmx.getValue("NumLiveDataNodes"))); jmx.getValue("NumLiveDataNodes")));
}
assertGauge("CorruptBlocks", Long.parseLong(jmx.getValue("CorruptBlocks")), assertGauge("CorruptBlocks", Long.parseLong(jmx.getValue("CorruptBlocks")),
getMetrics("FSNamesystem")); getMetrics("FSNamesystem"));
@ -169,8 +174,11 @@ public class TestJMXGet {
String serviceName = "DataNode"; String serviceName = "DataNode";
jmx.setService(serviceName); jmx.setService(serviceName);
jmx.init(); jmx.init();
try {
DFSTestUtil.waitForMetric(jmx, "BytesWritten", fileSize); DFSTestUtil.waitForMetric(jmx, "BytesWritten", fileSize);
assertEquals(fileSize, Integer.parseInt(jmx.getValue("BytesWritten"))); } catch (TimeoutException e) {
assertEquals(String.format(WRONG_METRIC_VALUE_ERROR_MSG, "BytesWritten"), fileSize, Integer.parseInt(jmx.getValue("BytesWritten")));
}
cluster.shutdown(); cluster.shutdown();
MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer(); MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();