package org.basex.query; import static org.junit.Assert.*; import java.util.*; import org.basex.*; import org.junit.*; /** * Runs parallel queries. * * @author BaseX Team 2005-17, BSD License * @author Christian Gruen */ public final class ParallelQueryTest extends SandboxTest { /** Query. */ private static final String QUERY = "count((for $i in 1 to 50000 return <a><b/></a>)/b)"; /** Error. */ private Throwable error; /** Reference result. */ private String result; /** * Test. * @throws Throwable throwable */ @Test public void test() throws Throwable { // generate reference result result = query(QUERY); // generate results to be compared final ArrayList<Query> queries = new ArrayList<>(); for(int i = 0; i < 10; i++) queries.add(new Query()); for(final Query q : queries) q.start(); for(final Query q : queries) q.join(); if(error != null) throw error; } /** * Query instance. */ private class Query extends Thread { @Override public void run() { try { assertEquals(result, query(QUERY)); } catch(final Throwable th) { error = th; } } } }