/*
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/
public class BenchmarkRunner implements Runnable
{
private Thread myThread;
private RmsBenchmarkMidlet myMIDlet;
private boolean runFullTests;
public static final String TESTNAMES = "RMS,,,,\n";
public static final String TESTS =
"10 byte record create,10 byte enumerated read,10 byte random read,create enums,10 byte record set,open,close,10 byte record delete" +
",,100 byte record create,100 byte enumerated read,100 byte random read,create enums,100 byte record set,open,close,100 byte record delete" +
",,1000 byte record create,1000 byte enumerated read,1000 byte random read,create enums,1000 byte record set,open,close,1000 byte record delete" +
",,10000 byte record create,10000 byte enumerated read,10000 byte random read,create enums,10000 byte record set,open,close,10000 byte record delete" +
",,100000 byte record create,100000 byte enumerated read,100000 byte random read,create enums,100000 byte record set,open,close,100000 byte record delete\n";
public static StringBuffer SCORES;
BenchmarkRunner(RmsBenchmarkMidlet aMIDlet)
{
myMIDlet = aMIDlet;
SCORES = new StringBuffer();
}
public void start()
{
runFullTests = false;
System.out.println("BenchmarkRunner.start()");
myThread = new Thread(this);
myThread.start();
}
public void startFull()
{
runFullTests = true;
System.out.println("BenchmarkRunner.startFull()");
myThread = new Thread(this);
myThread.start();
}
private void getScores(Benchmark benchmark)
{
StringBuffer score = new StringBuffer();
while (benchmark.getScore(score))
{
SCORES.append(score.toString());
SCORES.append(',');
score.delete(0, score.length());
}
}
public void run()
{
System.out.println("BenchmarkRunner.run()");
SCORES.delete(0, SCORES.length());
Benchmark benchmark;
// RMS BENCHMARK
myMIDlet.updateForm("RMS...");
benchmark = new RMSBenchmark(runFullTests);
benchmark.runTest();
getScores(benchmark);
benchmark = null;
System.gc();
SCORES.append('\n'); // EOL
Printer printer = new Printer();
printer.print();
myMIDlet.testsCompleted();
System.out.println("BenchmarkRunner.run() completed");
}
}