javaextensions/midprms_db/tsrc/rmsbenchmark/javasrc/BenchmarkRunner.java
changeset 21 2a9601315dfc
child 78 71ad690e91f5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/midprms_db/tsrc/rmsbenchmark/javasrc/BenchmarkRunner.java	Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,90 @@
+/*
+* 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");
+    }
+
+}