diff options
Diffstat (limited to '')
| -rw-r--r-- | src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java | 65 |
1 files changed, 46 insertions, 19 deletions
diff --git a/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java b/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java index dfc6813..433624a 100644 --- a/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java +++ b/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java @@ -4,15 +4,19 @@ import cz.crcs.ectester.common.output.BaseYAMLTestWriter; import cz.crcs.ectester.common.test.TestSuite; import cz.crcs.ectester.common.test.Testable; import cz.crcs.ectester.common.util.ByteUtil; -import cz.crcs.ectester.standalone.test.KeyAgreementTestable; -import cz.crcs.ectester.standalone.test.KeyGeneratorTestable; -import cz.crcs.ectester.standalone.test.SignatureTestable; +import cz.crcs.ectester.standalone.ECTesterStandalone; +import cz.crcs.ectester.standalone.test.base.KeyAgreementTestable; +import cz.crcs.ectester.standalone.test.base.KeyGeneratorTestable; +import cz.crcs.ectester.standalone.test.base.SignatureTestable; +import cz.crcs.ectester.standalone.test.base.StandaloneTestable; +import cz.crcs.ectester.standalone.test.suites.StandaloneTestSuite; import java.io.PrintStream; import java.security.Key; import java.security.PrivateKey; import java.security.PublicKey; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -24,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; } @@ -35,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())); @@ -48,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); @@ -67,32 +71,55 @@ 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<>(); - if (t instanceof KeyGeneratorTestable) { - result.put("type", "key-pair-generator"); - result.put("key-pair-generator", kgtObject((KeyGeneratorTestable) t)); - } else if (t instanceof KeyAgreementTestable) { - result.put("type", "key-agreement"); - result.put("key-agreement", kaObject((KeyAgreementTestable) t)); - } else if (t instanceof SignatureTestable) { - result.put("type", "signature"); - result.put("signature", sigObject((SignatureTestable) t)); + 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)); + } else if (t instanceof KeyAgreementTestable) { + result.put("type", "key-agreement"); + result.put("key-agreement", kaObject((KeyAgreementTestable) t)); + } else if (t instanceof SignatureTestable) { + result.put("type", "signature"); + result.put("signature", sigObject((SignatureTestable) t)); + } + result.put("stage", testable.getStage().name()); + result.put("exception", causeObject(testable.getException()) + causeObject(testable.errorCause())); } return result; } @Override protected Map<String, Object> deviceObject(TestSuite suite) { - //TODO + if (suite instanceof StandaloneTestSuite) { + StandaloneTestSuite standaloneSuite = (StandaloneTestSuite) suite; + Map<String, Object> result = new LinkedHashMap<>(); + result.put("type", "library"); + result.put("ectester", ECTesterStandalone.VERSION); + result.put("name", standaloneSuite.getLibrary().name()); + return result; + } return null; } } |
