aboutsummaryrefslogtreecommitdiff
path: root/standalone/src
diff options
context:
space:
mode:
authorJ08nY2024-03-28 16:35:27 +0100
committerJ08nY2024-03-28 16:35:27 +0100
commit6cadd538804714c0e12c18a4fc483452b978aaad (patch)
tree9df8aee862f1fdc5a1f8e9f3239786335109fa3b /standalone/src
parentfb8ce97e06363637ccf0846c012e5e3c6bfa6f44 (diff)
downloadECTester-6cadd538804714c0e12c18a4fc483452b978aaad.tar.gz
ECTester-6cadd538804714c0e12c18a4fc483452b978aaad.tar.zst
ECTester-6cadd538804714c0e12c18a4fc483452b978aaad.zip
Diffstat (limited to 'standalone/src')
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/base/PerformanceTest.java29
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java8
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));
}
}
}