LOG4J2-1663 improve error reporting
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/eddedb73 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/eddedb73 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/eddedb73 Branch: refs/heads/LOG4J2-1661 Commit: eddedb730e3f2449a1f77d70e2e732b8e6e60313 Parents: 8cd9f55 Author: rpopma <[email protected]> Authored: Sat Nov 5 23:35:00 2016 +0900 Committer: rpopma <[email protected]> Committed: Sat Nov 5 23:35:00 2016 +0900 ---------------------------------------------------------------------- .../log4j/util/SortedArrayStringMapTest.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/eddedb73/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java index 693bb5f..03d4951 100644 --- a/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java +++ b/log4j-api/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java @@ -16,11 +16,13 @@ */ package org.apache.logging.log4j.util; +import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.lang.reflect.Field; @@ -105,11 +107,21 @@ public class SortedArrayStringMapTest { } final Process process = new ProcessBuilder("java", "-cp", createClassPath(SortedArrayStringMap.class, DeserializerHelper.class), - DeserializerHelper.class.getName(), file.getPath()).inheritIO().start(); + DeserializerHelper.class.getName(), file.getPath()).start(); + final BufferedReader in = new BufferedReader(new InputStreamReader(process.getErrorStream())); int exitValue = process.waitFor(); file.delete(); - assertEquals("no error", 0, exitValue); + if (exitValue != 0) { + final StringBuilder sb = new StringBuilder(); + sb.append("DeserializerHelper exited with error code ").append(exitValue); + sb.append(". Process output: "); + int c = -1; + while ((c = in.read()) != -1) { + sb.append((char) c); + } + fail(sb.toString()); + } } private String createClassPath(Class<?>... classes) {
