From 7e5adbde7333582e7e2a15c61f53739f13afa337 Mon Sep 17 00:00:00 2001 From: Viliam Repan Date: Fri, 8 Jun 2018 13:56:19 +0200 Subject: [PATCH] small test improvements --- .../sql/ExtDictionaryConcurrencyTest.java | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ExtDictionaryConcurrencyTest.java b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ExtDictionaryConcurrencyTest.java index 4456320bc7e..e5caf41ec32 100644 --- a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ExtDictionaryConcurrencyTest.java +++ b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ExtDictionaryConcurrencyTest.java @@ -19,6 +19,9 @@ import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.delta.ObjectDelta; import com.evolveum.midpoint.prism.path.ItemPath; +import com.evolveum.midpoint.prism.query.ObjectQuery; +import com.evolveum.midpoint.prism.query.SubstringFilter; +import com.evolveum.midpoint.prism.schema.SchemaRegistry; import com.evolveum.midpoint.repo.api.RepoAddOptions; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.util.logging.Trace; @@ -67,7 +70,10 @@ public void testSerializationExceptions() throws Exception { workers[i] = new Worker(this, UserType.class, oid, "testAttribute"); } - ExecutorService executors = Executors.newFixedThreadPool(workers.length); + ExecutorService executors = Executors.newFixedThreadPool(workers.length * 2); +// for (int i = 0; i < WORKER_COUNT; i++) { +// executors.execute(new SelectWorker(this)); +// } for (int i = 1; i <= 1000; i++) { List futures = new ArrayList<>(); @@ -85,6 +91,36 @@ public void testSerializationExceptions() throws Exception { Thread.sleep(100); } + + executors.shutdownNow(); + } + + private static class SelectWorker implements Runnable { + + private ExtDictionaryConcurrencyTest test; + + public SelectWorker(ExtDictionaryConcurrencyTest test) { + this.test = test; + } + + @Override + public void run() { + try { + OperationResult result = new OperationResult("search"); + + SchemaRegistry registry = test.prismContext.getSchemaRegistry(); + + ObjectQuery query = ObjectQuery.createObjectQuery( + SubstringFilter.createSubstring( + new ItemPath(UserType.F_NAME), + registry.findComplexTypeDefinitionByCompileTimeClass(UserType.class).findPropertyDefinition(UserType.F_NAME), + test.prismContext, null, "worker", false, false)); + List> res = test.repositoryService.searchObjects(UserType.class, query, new ArrayList<>(), result); + LOGGER.info("Found {} users", res.size()); + } catch (Exception ex) { + LOGGER.error("Search exception", ex); + } + } } private static class Worker implements Runnable { @@ -115,6 +151,7 @@ public void run() { OperationResult result = new OperationResult("Test: " + attribute + index); try { ItemPath path = new ItemPath(UserType.F_EXTENSION, new QName(NAMESPACE, attribute + index)); +// ItemPath path = new ItemPath(UserType.F_DESCRIPTION); ObjectDelta delta = ObjectDelta.createModificationAddProperty(type, oid, path, test.prismContext, attribute + index);