diff options
| author | J08nY | 2024-03-28 16:35:27 +0100 |
|---|---|---|
| committer | J08nY | 2024-03-28 16:35:27 +0100 |
| commit | 6cadd538804714c0e12c18a4fc483452b978aaad (patch) | |
| tree | 9df8aee862f1fdc5a1f8e9f3239786335109fa3b /standalone/src | |
| parent | fb8ce97e06363637ccf0846c012e5e3c6bfa6f44 (diff) | |
| download | ECTester-6cadd538804714c0e12c18a4fc483452b978aaad.tar.gz ECTester-6cadd538804714c0e12c18a4fc483452b978aaad.tar.zst ECTester-6cadd538804714c0e12c18a4fc483452b978aaad.zip | |
Diffstat (limited to 'standalone/src')
2 files changed, 23 insertions, 14 deletions
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/PerformanceTest.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/PerformanceTest.java index 258ca12..d50c7e9 100644 --- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/PerformanceTest.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/PerformanceTest.java @@ -4,6 +4,7 @@ import cz.crcs.ectester.common.test.BaseTestable; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.SimpleTest; import cz.crcs.ectester.common.test.TestCallback; +import cz.crcs.ectester.standalone.libs.ProviderECLibrary; import java.util.Arrays; @@ -11,6 +12,8 @@ import java.util.Arrays; * @author David Hofman */ public class PerformanceTest extends SimpleTest<BaseTestable> { + + private ProviderECLibrary library; private long[] times; private long mean; private long median; @@ -18,23 +21,24 @@ public class PerformanceTest extends SimpleTest<BaseTestable> { private final int count; private final String desc; - private PerformanceTest(BaseTestable testable, int count, String desc) { + private PerformanceTest(BaseTestable testable, ProviderECLibrary library, int count, String desc) { super(testable, new TestCallback<BaseTestable>() { @Override public Result apply(BaseTestable testable) { return new Result(Result.Value.SUCCESS); } }); + this.library = library; this.count = count; this.desc = desc; } - public static PerformanceTest repeat(BaseTestable testable, int count) { - return new PerformanceTest(testable, count, null); + public static PerformanceTest repeat(BaseTestable testable, ProviderECLibrary library, int count) { + return new PerformanceTest(testable, library, count, null); } - public static PerformanceTest repeat(BaseTestable testable, String desc, int count) { - return new PerformanceTest(testable, count, desc); + public static PerformanceTest repeat(BaseTestable testable, ProviderECLibrary library, String desc, int count) { + return new PerformanceTest(testable, library, count, desc); } @Override @@ -99,11 +103,16 @@ public class PerformanceTest extends SimpleTest<BaseTestable> { } private long measureTime() { - if(testable.hasRun()) { - testable.reset(); + if (testable.hasRun()) { + testable.reset(); + } + if (library.getNativeTimingSupport().isEmpty()) { + long startTime = System.nanoTime(); + testable.run(); + return System.nanoTime() - startTime; + } else { + testable.run(); + return library.getLastNativeTiming(); } - long startTime = System.nanoTime(); - testable.run(); - return System.nanoTime() - startTime; } } diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java index dd50862..e3b6d2e 100644 --- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java @@ -93,7 +93,7 @@ public class StandalonePerformanceSuite extends StandaloneTestSuite { kgtOne = new KeyGeneratorTestable(kpg); kgtOther = new KeyGeneratorTestable(kpg); } - kpgTests.add(PerformanceTest.repeat(kgtOne, kpgIdent.getName(), count)); + kpgTests.add(PerformanceTest.repeat(kgtOne, cfg.selected, kpgIdent.getName(), count)); } runTest(KeyGeneratorTest.expect(kgtOther, Result.ExpectedValue.SUCCESS)); doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "KeyPairGenerator performance tests", kpgTests.toArray(new Test[0]))); @@ -108,7 +108,7 @@ public class StandalonePerformanceSuite extends StandaloneTestSuite { } else { testable = new KeyAgreementTestable(ka, kgtOne, kgtOther, spec); } - kaTests.add(PerformanceTest.repeat(testable, kaIdent.getName(), count)); + kaTests.add(PerformanceTest.repeat(testable, cfg.selected, kaIdent.getName(), count)); } } if(kaTests.isEmpty()) { @@ -121,10 +121,10 @@ public class StandalonePerformanceSuite extends StandaloneTestSuite { for (SignatureIdent sigIdent : cfg.selected.getSigs()) { if (sigAlgo == null || sigIdent.containsAny(sigTypes)) { Signature sig = sigIdent.getInstance(cfg.selected.getProvider()); - sigTests.add(PerformanceTest.repeat(new SignatureTestable(sig, kgtOne, null), sigIdent.getName(),count)); + sigTests.add(PerformanceTest.repeat(new SignatureTestable(sig, kgtOne, null), cfg.selected, sigIdent.getName(),count)); if(kgtOne.getKeyPair() != null) { ECPrivateKey signKey = (ECPrivateKey) kgtOne.getKeyPair().getPrivate(); - sigTestsNoVerification.add(PerformanceTest.repeat(new SignatureTestable(sig, signKey, null, null), sigIdent.getName(), count)); + sigTestsNoVerification.add(PerformanceTest.repeat(new SignatureTestable(sig, signKey, null, null), cfg.selected, sigIdent.getName(), count)); } } } |
