mondrian.test
Class ConcurrentValidatingQueryRunner
java.lang.Object
java.lang.Thread
mondrian.test.ConcurrentValidatingQueryRunner
- All Implemented Interfaces:
- Runnable
public class ConcurrentValidatingQueryRunner
- extends Thread
Utility class to run set of MDX queries in multiple threads and
validate the results.
Queries are run against the FoodMart database.
- Author:
- Thiyagu, Ajit
Method Summary |
void |
run()
Runs a number of queries until time expires. |
(package private) static List<Throwable> |
runTest(int numThreads,
int runTimeInSeconds,
boolean randomQueries,
boolean randomCacheFlush,
boolean printReport,
FoodMartTestCase.QueryAndResult[] queriesAndResults)
Creates and runs concurrent threads of tests with random cache flush. |
(package private) static List<Throwable> |
runTest(int numThreads,
int runTimeInSeconds,
boolean randomQueries,
boolean printReport,
FoodMartTestCase.QueryAndResult[] queriesAndResults)
Creates and runs concurrent threads of tests without flushing cache. |
Methods inherited from class java.lang.Thread |
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
ConcurrentValidatingQueryRunner
public ConcurrentValidatingQueryRunner(int numSeconds,
boolean useRandomQuery,
FoodMartTestCase.QueryAndResult[] queriesAndResults)
- Runs concurrent queries without flushing cache. This constructor
provides backward compatibilty for usage in
ConcurrentMdxTest
.
- Parameters:
numSeconds
- Running timeuseRandomQuery
- If set to true
, the runner will
pick a random query from the set. If set to false
,
the runner will circle through queries sequentiallyqueriesAndResults
- The array of pairs of query and expected result
ConcurrentValidatingQueryRunner
public ConcurrentValidatingQueryRunner(int numSeconds,
boolean useRandomQuery,
boolean randomCacheFlush,
FoodMartTestCase.QueryAndResult[] queriesAndResults)
- Runs concurrent queries with random cache flush.
- Parameters:
numSeconds
- Running timeuseRandomQuery
- If set to true
, the runner will
pick a random query from the set. If set to false
,
the runner will circle through queries sequentiallyrandomCacheFlush
- If set to true
, the runner will
do a coin toss before running the query. If the result of the
experiment is favorable, runner will flush a random region
of aggregation cachequeriesAndResults
- The array of pairs of query and expected result
run
public void run()
- Runs a number of queries until time expires. For each iteration,
if cache is to be flushed, do it before running the query.
- Specified by:
run
in interface Runnable
- Overrides:
run
in class Thread
runTest
static List<Throwable> runTest(int numThreads,
int runTimeInSeconds,
boolean randomQueries,
boolean printReport,
FoodMartTestCase.QueryAndResult[] queriesAndResults)
- Creates and runs concurrent threads of tests without flushing cache.
This method provides backward compatibilty for usage in
ConcurrentMdxTest
.
- Parameters:
numThreads
- Number of concurrent threadsrunTimeInSeconds
- Running TimerandomQueries
- Whether to pick queries in random or in sequenceprintReport
- Whether to print reportqueriesAndResults
- Array of pairs of query and expected result
- Returns:
- The list of failures
runTest
static List<Throwable> runTest(int numThreads,
int runTimeInSeconds,
boolean randomQueries,
boolean randomCacheFlush,
boolean printReport,
FoodMartTestCase.QueryAndResult[] queriesAndResults)
- Creates and runs concurrent threads of tests with random cache flush.
- Parameters:
numThreads
- Number of concurrent threadsrunTimeInSeconds
- Running TimerandomQueries
- Whether to pick queries in random or in sequencerandomCacheFlush
- Whether to flush cache before running queriesprintReport
- Whether to print reportqueriesAndResults
- Array of pairs of query and expected result
- Returns:
- The list of failures