aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java')
-rw-r--r--src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java17
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;
}