diff options
Diffstat (limited to 'src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java')
| -rw-r--r-- | src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java b/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java index 1e13082..1452b08 100644 --- a/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java +++ b/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java @@ -41,11 +41,26 @@ public abstract class BaseYAMLTestWriter implements TestWriter { abstract protected Map<String, Object> deviceObject(TestSuite suite); + private Object causeObject(Object cause) { + if (cause == null) { + return null; + } else if (cause instanceof Throwable) { + StringBuilder sb = new StringBuilder(); + for (Throwable t = (Throwable) cause; t != null; t = t.getCause()) { + sb.append(t.toString()); + sb.append(System.lineSeparator()); + } + return sb.toString(); + } else { + return cause.toString(); + } + } + private Map<String, Object> resultObject(Result result) { Map<String, Object> resultObject = new HashMap<>(); resultObject.put("ok", result.ok()); resultObject.put("value", result.getValue().name()); - resultObject.put("cause", result.getCause()); + resultObject.put("cause", causeObject(result.getCause())); return resultObject; } |
