You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by st...@apache.org on 2019/02/25 15:18:55 UTC
svn commit: r1854316 - in
/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark:
BenchmarkRunner.java authentication/external/AbstractExternalTest.java
authentication/external/ExternalLoginTest.java
Author: stillalex
Date: Mon Feb 25 15:18:55 2019
New Revision: 1854316
URL: http://svn.apache.org/viewvc?rev=1854316&view=rev
Log:
OAK-8053 Add intermediate report to ExternalLoginTest
Modified:
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/ExternalLoginTest.java
Modified: jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java?rev=1854316&r1=1854315&r2=1854316&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java Mon Feb 25 15:18:55 2019
@@ -486,7 +486,9 @@ public class BenchmarkRunner {
new ReplicaCrashResilienceTest(),
// benchmarks for oak-auth-external
- new ExternalLoginTest(numberOfUsers.value(options), numberOfGroups.value(options), expiration.value(options), dynamicMembership.value(options), autoMembership.values(options)),
+ new ExternalLoginTest(numberOfUsers.value(options), numberOfGroups.value(options),
+ expiration.value(options), dynamicMembership.value(options), autoMembership.values(options),
+ report.value(options)),
new SyncAllExternalUsersTest(numberOfUsers.value(options), numberOfGroups.value(options), expiration.value(options), dynamicMembership.value(options), autoMembership.values(options)),
new SyncAllUsersTest(numberOfUsers.value(options), numberOfGroups.value(options), expiration.value(options), dynamicMembership.value(options), autoMembership.values(options)),
new SyncExternalUsersTest(numberOfUsers.value(options), numberOfGroups.value(options), expiration.value(options), dynamicMembership.value(options), autoMembership.values(options), batchSize.value(options)),
Modified: jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java?rev=1854316&r1=1854315&r2=1854316&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/AbstractExternalTest.java Mon Feb 25 15:18:55 2019
@@ -91,7 +91,8 @@ abstract class AbstractExternalTest exte
private static final String PATH_PREFIX = "pathPrefix";
- private final Random random = new Random();
+ protected final long seed = Long.getLong("seed", System.currentTimeMillis());
+ private final Random random = new Random(seed);
private final ExternalPrincipalConfiguration externalPrincipalConfiguration = new ExternalPrincipalConfiguration();
private ContentRepository contentRepository;
Modified: jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/ExternalLoginTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/ExternalLoginTest.java?rev=1854316&r1=1854315&r2=1854316&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/ExternalLoginTest.java (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authentication/external/ExternalLoginTest.java Mon Feb 25 15:18:55 2019
@@ -16,7 +16,10 @@
*/
package org.apache.jackrabbit.oak.benchmark.authentication.external;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
+
import javax.jcr.SimpleCredentials;
import javax.security.auth.login.AppConfigurationEntry;
import javax.security.auth.login.Configuration;
@@ -30,7 +33,6 @@ import org.apache.jackrabbit.oak.spi.sec
import org.jetbrains.annotations.NotNull;
import static javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag.SUFFICIENT;
-import static javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag.REQUIRED;
import static javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag.OPTIONAL;
/**
@@ -43,14 +45,53 @@ import static javax.security.auth.login.
*/
public class ExternalLoginTest extends AbstractExternalTest {
+ private final int numberOfUsers;
+ private final int numberOfGroups;
+ private final Reporter reporter;
+
+ private String id;
+ private Set<String> uniques;
+
public ExternalLoginTest(int numberOfUsers, int numberOfGroups, long expTime,
- boolean dynamicMembership, @NotNull List<String> autoMembership) {
+ boolean dynamicMembership, @NotNull List<String> autoMembership, boolean report) {
super(numberOfUsers, numberOfGroups, expTime, dynamicMembership, autoMembership);
+ this.numberOfUsers = numberOfUsers;
+ this.numberOfGroups = numberOfGroups;
+ this.reporter = new Reporter(report);
+ }
+
+ @Override
+ protected void beforeSuite() throws Exception {
+ super.beforeSuite();
+ reporter.beforeSuite();
+ uniques = new HashSet<>(numberOfUsers);
+ }
+
+ @Override
+ protected void afterSuite() throws Exception {
+ reporter.afterSuite();
+ System.out.println("Unique users " + uniques.size() + " out of total " + numberOfUsers + ". Groups "
+ + numberOfGroups + ". Seed " + seed);
+ super.afterSuite();
+ }
+
+ @Override
+ protected void beforeTest() throws Exception {
+ super.beforeTest();
+ id = getRandomUserId();
+ reporter.beforeTest();
+ }
+
+ @Override
+ protected void afterTest() throws Exception {
+ super.afterTest();
+ uniques.add(id);
+ reporter.afterTest();
}
@Override
protected void runTest() throws Exception {
- getRepository().login(new SimpleCredentials(getRandomUserId(), new char[0])).logout();
+ getRepository().login(new SimpleCredentials(id, new char[0])).logout();
}
protected Configuration createConfiguration() {
@@ -80,4 +121,56 @@ public class ExternalLoginTest extends A
}
};
}
+
+ private static class Reporter {
+ private final long LIMIT = Long.getLong("flushAt", 1000);
+
+ private final boolean doReport;
+
+ private long count;
+ private long start;
+
+ public Reporter(boolean doReport) {
+ this.doReport = doReport;
+ }
+
+ public void afterTest() {
+ if (!doReport) {
+ return;
+ }
+ count++;
+ report(false);
+ }
+
+ private void report(boolean end) {
+ if (end || count % LIMIT == 0) {
+ long dur = System.currentTimeMillis() - start;
+ System.out.println(dur + " ms, " + count + " tests");
+ start = System.currentTimeMillis();
+ count = 0;
+ }
+ }
+
+ public void beforeTest() {
+ if (!doReport) {
+ return;
+ }
+ }
+
+ public void beforeSuite() {
+ if (!doReport) {
+ return;
+ }
+ System.out.println("Reporting enabled.");
+ start = System.currentTimeMillis();
+ count = 0;
+ }
+
+ public void afterSuite() {
+ if (!doReport) {
+ return;
+ }
+ report(true);
+ }
+ }
}