HBASE-22545 TestLogLevel broken

Signed-off-by: Josh Elser <elserj@apache.org>
This commit is contained in:
Mingliang Liu 2019-06-11 00:44:54 -07:00 committed by Josh Elser
parent e38aa2624f
commit 32e501df6c
1 changed files with 27 additions and 6 deletions

View File

@ -52,6 +52,7 @@ import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.authorize.AccessControlList;
import org.apache.hadoop.security.ssl.SSLFactory;
import org.apache.hadoop.test.GenericTestUtils;
import org.apache.hadoop.util.StringUtils;
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
@ -409,7 +410,7 @@ public class TestLogLevel {
fail("A HTTPS Client should not have succeeded in connecting to a " +
"HTTP server");
} catch (SSLException e) {
GenericTestUtils.assertExceptionContains("Unrecognized SSL message", e);
exceptionShouldContains("Unrecognized SSL message", e);
}
}
@ -428,7 +429,7 @@ public class TestLogLevel {
fail("A HTTPS Client should not have succeeded in connecting to a " +
"HTTP server");
} catch (SSLException e) {
GenericTestUtils.assertExceptionContains("Unrecognized SSL message", e);
exceptionShouldContains("Unrecognized SSL message", e);
}
}
@ -448,8 +449,7 @@ public class TestLogLevel {
fail("A HTTP Client should not have succeeded in connecting to a " +
"HTTPS server");
} catch (SocketException e) {
GenericTestUtils.assertExceptionContains(
"Unexpected end of file from server", e);
exceptionShouldContains("Unexpected end of file from server", e);
}
}
@ -469,8 +469,29 @@ public class TestLogLevel {
fail("A HTTP Client should not have succeeded in connecting to a " +
"HTTPS server");
} catch (SocketException e) {
GenericTestUtils.assertExceptionContains(
"Unexpected end of file from server", e);
exceptionShouldContains("Unexpected end of file from server", e);
}
}
/**
* Assert that a throwable or one of its causes should contain the substr in its message.
*
* Ideally we should use {@link GenericTestUtils#assertExceptionContains(String, Throwable)} util
* method which asserts t.toString() contains the substr. As the original throwable may have been
* wrapped in Hadoop3 because of HADOOP-12897, it's required to check all the wrapped causes.
* After stop supporting Hadoop2, this method can be removed and assertion in tests can use
* t.getCause() directly, similar to HADOOP-15280.
*/
private static void exceptionShouldContains(String substr, Throwable throwable) {
Throwable t = throwable;
while (t != null) {
String msg = t.toString();
if (msg != null && msg.contains(substr)) {
return;
}
t = t.getCause();
}
throw new AssertionError("Expected to find '" + substr + "' but got unexpected exception:" +
StringUtils.stringifyException(throwable), throwable);
}
}