diff options
Diffstat (limited to 'src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java')
| -rw-r--r-- | src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java b/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java index 0926b98..433624a 100644 --- a/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java +++ b/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java @@ -16,6 +16,7 @@ import java.security.Key; import java.security.PrivateKey; import java.security.PublicKey; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -27,7 +28,7 @@ public class YAMLTestWriter extends BaseYAMLTestWriter { } private Map<String, Object> keyObject(Key key) { - Map<String, Object> kObject = new HashMap<>(); + Map<String, Object> kObject = new LinkedHashMap<>(); if (key == null) { return kObject; } @@ -38,7 +39,7 @@ public class YAMLTestWriter extends BaseYAMLTestWriter { } private Map<String, Object> kaObject(KeyAgreementTestable kat) { - Map<String, Object> katObject = new HashMap<>(); + Map<String, Object> katObject = new LinkedHashMap<>(); katObject.put("algo", kat.getKa().getAlgorithm()); katObject.put("secret", ByteUtil.bytesToHex(kat.getSecret())); @@ -51,10 +52,10 @@ public class YAMLTestWriter extends BaseYAMLTestWriter { } private Map<String, Object> kgtObject(KeyGeneratorTestable kgt) { - Map<String, Object> kgtObject = new HashMap<>(); + Map<String, Object> kgtObject = new LinkedHashMap<>(); kgtObject.put("algo", kgt.getKpg().getAlgorithm()); - Map<String, Object> keypair = new HashMap<>(); + Map<String, Object> keypair = new LinkedHashMap<>(); if (kgt.getKeyPair() != null) { PublicKey pkey = kgt.getKeyPair().getPublic(); Map<String, Object> pubObject = keyObject(pkey); @@ -70,17 +71,29 @@ public class YAMLTestWriter extends BaseYAMLTestWriter { } private Map<String, Object> sigObject(SignatureTestable sig) { - Map<String, Object> sigObject = new HashMap<>(); + Map<String, Object> sigObject = new LinkedHashMap<>(); sigObject.put("algo", sig.getSig().getAlgorithm()); sigObject.put("verified", sig.getVerified()); sigObject.put("raw", ByteUtil.bytesToHex(sig.getSignature())); return sigObject; } + private String causeObject(Object cause) { + if (cause == null) { + return ""; + } else if (cause instanceof Exception) { + Exception ex = ((Exception) cause); + return ex.getClass().getCanonicalName() + " : " + ex.getMessage(); + } else { + return cause.toString(); + } + } + @Override protected Map<String, Object> testableObject(Testable t) { - Map<String, Object> result = new HashMap<>(); + Map<String, Object> result = new LinkedHashMap<>(); if (t instanceof StandaloneTestable) { + StandaloneTestable<?> testable = (StandaloneTestable) t; if (t instanceof KeyGeneratorTestable) { result.put("type", "key-pair-generator"); result.put("key-pair-generator", kgtObject((KeyGeneratorTestable) t)); @@ -91,7 +104,8 @@ public class YAMLTestWriter extends BaseYAMLTestWriter { result.put("type", "signature"); result.put("signature", sigObject((SignatureTestable) t)); } - result.put("stage", ((StandaloneTestable)t).getStage().name()); + result.put("stage", testable.getStage().name()); + result.put("exception", causeObject(testable.getException()) + causeObject(testable.errorCause())); } return result; } @@ -100,7 +114,7 @@ public class YAMLTestWriter extends BaseYAMLTestWriter { protected Map<String, Object> deviceObject(TestSuite suite) { if (suite instanceof StandaloneTestSuite) { StandaloneTestSuite standaloneSuite = (StandaloneTestSuite) suite; - Map<String, Object> result = new HashMap<>(); + Map<String, Object> result = new LinkedHashMap<>(); result.put("type", "library"); result.put("ectester", ECTesterStandalone.VERSION); result.put("name", standaloneSuite.getLibrary().name()); |
