From 5d1e20ca950abbf73ecd4fa68a40167343a0f5f3 Mon Sep 17 00:00:00 2001 From: "Joseph Chang (bz)" Date: Fri, 21 Oct 2011 23:26:10 +0800 Subject: [PATCH] Add support for uploading SunSpider results to 0xBenchWeb. --- assets/driver.html | 16 +++++++++++- src/org/zeroxlab/benchmark/CaseJavascript.java | 32 ++++++++++++++++++------ src/org/zeroxlab/benchmark/TesterJavascript.java | 7 +++++- 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/assets/driver.html b/assets/driver.html index 394e557..fc02aa2 100644 --- a/assets/driver.html +++ b/assets/driver.html @@ -102,8 +102,9 @@ function finish() computeStdDevs(); computeStdErrors(); + var formattedOutput = getOutputForUpload(); var finalOutput = getOutput(); - window.ANDROID_OBJ.finish(finalOutput); + window.ANDROID_OBJ.finish(finalOutput, formattedOutput); } @@ -145,6 +146,19 @@ function getOutput() return outputString; } + +function getOutputForUpload() +{ + var outputString = ""; + + outputString += "Total\t" + mean.toString() + "\n"; + for (var category in categoryMeans) { + outputString += category + "\t" + categoryMeans[category].toString(); + outputString += "\n"; + } + + return outputString; +}
diff --git a/src/org/zeroxlab/benchmark/CaseJavascript.java b/src/org/zeroxlab/benchmark/CaseJavascript.java index 16beb76..097f9ab 100644 --- a/src/org/zeroxlab/benchmark/CaseJavascript.java +++ b/src/org/zeroxlab/benchmark/CaseJavascript.java @@ -30,9 +30,12 @@ import android.content.BroadcastReceiver; import android.content.Intent; import android.os.Bundle; +import java.lang.Float; + public class CaseJavascript extends Case { public static String SUNSPIDER_RESULT = "SUNSPIDER_RESULT"; + public static String SUNSPIDER_FORMATTED_RESULT = "SUNSPIDER_FORMATTED_RESULT"; public static String SUNSPIDER_TOTAL = "SUNSPIDER_TOTAL"; public static int sRepeat = 1; @@ -41,9 +44,10 @@ public class CaseJavascript extends Case { private double mTotal = 0.0; protected String[] mJSResults; + protected String mFormattedResult; CaseJavascript() { super("CaseJavascript", "org.zeroxlab.benchmark.TesterJavascript", sRepeat, sRound); - mType = "msec"; + mType = "msec-js"; mTags = new String[]{new String("javascript")}; } @@ -79,13 +83,19 @@ public class CaseJavascript extends Case { @Override public ArrayList getScenarios () { - ArrayList scenarios = new ArrayList(); - Scenario s = new Scenario(getTitle(), mType, mTags); - s.mLog = getResultOutput(); - s.mResults.add(mTotal); - - scenarios.add(s); + ArrayList scenarios = new ArrayList(); + String results[] = mFormattedResult.split("\n"); + for (String result: results) { + String name_time[] = result.split("\t"); + String title = getTitle() + ":" + name_time[0]; + Log.i(TAG, "JS title: " + title); + Log.i(TAG, "JS time: " + name_time[1]); + + Scenario s = new Scenario(title, mType, mTags); + s.mResults.add( Double.parseDouble(name_time[1]) ); + scenarios.add(s); + } return scenarios; } @@ -102,6 +112,14 @@ public class CaseJavascript extends Case { mJSResults[index] = result; } + String formatted_result = intent.getStringExtra(SUNSPIDER_FORMATTED_RESULT); + if (result == null) { + Log.e(TAG, "Weird! cannot find SunSpiderInfo for formatted"); + return false; + } else { + mFormattedResult = formatted_result; + } + return true; } } diff --git a/src/org/zeroxlab/benchmark/TesterJavascript.java b/src/org/zeroxlab/benchmark/TesterJavascript.java index 0b0ebf9..a29d55c 100644 --- a/src/org/zeroxlab/benchmark/TesterJavascript.java +++ b/src/org/zeroxlab/benchmark/TesterJavascript.java @@ -24,6 +24,7 @@ import android.os.Message; import android.content.Intent; import android.webkit.WebView; import android.webkit.WebSettings; +import android.util.Log; public class TesterJavascript extends Tester { @@ -32,6 +33,7 @@ public class TesterJavascript extends Tester { private double mTotalTime = 0.0; private String mResult = ""; + private String mFormattedResult = ""; @Override public void onCreate(Bundle savedInstanceState) { @@ -74,13 +76,16 @@ public class TesterJavascript extends Tester { @Override protected boolean saveResult(Intent intent) { intent.putExtra(CaseJavascript.SUNSPIDER_RESULT, mResult); + intent.putExtra(CaseJavascript.SUNSPIDER_FORMATTED_RESULT, mFormattedResult); intent.putExtra(CaseJavascript.SUNSPIDER_TOTAL, mTotalTime); return true; } class MsgCallback { - public void finish(String result) { + public void finish(String result, String formatted_result) { + Log.i("Benchmark", "JS result got"); mResult = result; + mFormattedResult = formatted_result; decreaseCounter(); } } -- 2.1.4