diff options
Diffstat (limited to 'BenchmarkFramework/app/src/main/java/org/linaro/iasenov')
28 files changed, 1282 insertions, 98 deletions
diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/BaseBenchmark.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/BaseBenchmark.java index c214a05..0cc1118 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/BaseBenchmark.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/BaseBenchmark.java @@ -17,7 +17,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Created by iasenov on 8/22/16. @@ -25,6 +27,7 @@ import java.util.List; public class BaseBenchmark { public String benchmarkName; + public String chartName; public String version; public String date$; public String executable_name; @@ -33,6 +36,8 @@ public class BaseBenchmark { public static long endTest; public static double testTime; public static Process process_exec; + public static long elapsedFromActivityTest; //only for GPU tests + public static int mRound; //only for GPU tests public List<String> TESTCOMMANDS; //List with Specific test commands public String[] xout = new String[20]; @@ -57,8 +62,6 @@ public class BaseBenchmark { ); - - //********************************************************************************************** //Get all commands by executable_name //********************************************************************************************** @@ -192,14 +195,14 @@ public class BaseBenchmark { } xout[15] = "\n"; - xout[elapsedTimeIdx] = " Total Elapsed Time " + String.format("%5.1f", testTime) + xout[elapsedTimeIdx] = " Total Elapsed Time " + String.format("%5.4f", testTime) + " seconds\n"; //HTML BEGIN if(iType.equals("EX")) { HtmlUtil.addTemplateParagraph(); - HtmlUtil.replaceHtmlTag("BODY", "Total Elapsed Time " + String.format("%5.1f", testTime) + " seconds\n"); + HtmlUtil.replaceHtmlTag("BODY", "Total Elapsed Time " + String.format("%5.4f", testTime) + " seconds\n"); HtmlUtil.addTemplateEnd(); }else if(iType.equals("SL")){ HtmlUtil.addTemplateExecute(); @@ -477,6 +480,48 @@ public class BaseBenchmark { return result; } + + + + //********************************************************************************************** + //Fill mapTimes map with elapsed time for every test and use it to create chart + //********************************************************************************************** + public void sendElapsedTimeToChart(){ + + double mTestTime = Math.sqrt(round((double) (endTest - startTest) / 1000,4)); + String timeStr = ""; + + if(MainActivity.mapTimes.containsKey(chartName)){ //in case test is run more than once + timeStr = MainActivity.mapTimes.get(chartName); + timeStr = timeStr + ":" + Math.sqrt(round((double) (endTest - startTest) / 1000,4)); + MainActivity.mapTimes.put(chartName, "" + timeStr); + + }else{ + MainActivity.mapTimes.put(chartName, "" + mTestTime); + } + + //Log.i(TAG, timeStr + ":" + round((double) (endTest - startTest) / 1000,1)); + } + + + //********************************************************************************************** + //Round double value by wanted places + //********************************************************************************************** + public static double round(double value, int places) { + if (places < 0) throw new IllegalArgumentException(); + + long factor = (long) Math.pow(10, places); + value = value * factor; + long tmp = Math.round(value); + return (double) tmp / factor; + } + + //********************************************************************************************** + //Add elapsed time to total elapsed time used for HTML + //********************************************************************************************** + public void submitElapsedTime(long elapsed){ + MainActivity.elapsedTotalTime = MainActivity.elapsedTotalTime + elapsed; + } //********************************************************************************************** }//BaseBenchmark //**********************************************************************************************
\ No newline at end of file diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Chart.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Chart.java new file mode 100644 index 0000000..959bf8c --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Chart.java @@ -0,0 +1,232 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.Toast; + + +import com.github.mikephil.charting.charts.HorizontalBarChart; +import com.github.mikephil.charting.components.YAxis; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.github.mikephil.charting.data.BarEntry; + +import com.github.mikephil.charting.data.Entry; +import com.github.mikephil.charting.formatter.ValueFormatter; +import com.github.mikephil.charting.utils.ColorTemplate; +import com.github.mikephil.charting.utils.ViewPortHandler; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Created by iasenov on 10/5/16. + */ +public class Chart extends AppCompatActivity { + + private static String TAG = "Chart"; + + final String[] nameTestItems = {"MemSpeed", + "RandMem", + "Linaro-Libc-Bench", + "Linaro-StringBench", + "Linaro-Harness", + "Linaro-Dhrystone", + "Iozone", + "Bonnie++", + "Algorithm(ART)", + "BMsGame(ART)", + "Caffeine(ART)", + "Jit-out(ART)", + "Math(ART)", + "Micro(ART)", + "Stanford(ART)", + "DrawArc(GPU)", + "DrawCircle2(GPU)", + "DrawImage(GPU)", + "DrawRect(GPU)", + "DrawText(GPU)", + "DrawCircle(GPU)", + "Kubench(GPU)", + "Nehe08(GPU)", + "Nehe16(GPU)", + "TeapotES(GPU)"}; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + + List<ArrayList<BarEntry>> groupList = new ArrayList<ArrayList<BarEntry>>(); + ArrayList<BarEntry> group = new ArrayList<>(); + ArrayList<String> labels = new ArrayList<String>(); + + ArrayList<BarEntry> group_average = new ArrayList<>(); + + int index = 0; + boolean isAllNeededEntriesInitialized = false; + int repeat = 1; + + + for (int j = 0; j < nameTestItems.length; j++) { + + if (MainActivity.mapTimes.containsKey(nameTestItems[j])) { + + //Log.i(TAG,nameTestItems[j] + "--->" + MainActivity.mapTimes.get(nameTestItems[j])); + + String points[] = MainActivity.mapTimes.get(nameTestItems[j]).split(":"); + + repeat = points.length; + //Log.i(TAG, "repeatttt:" + repeat); + int sumPoints = 0; + + for(int i = 0; i < points.length; i++){ + + if(!isAllNeededEntriesInitialized) { + group = new ArrayList<>(); + groupList.add(group); + + if(i == points.length -1 ) { + groupList.add(group_average); + } + } + + + double pointD = Double.parseDouble(points[i]); + + int point = (int)(50*100/pointD); + sumPoints = sumPoints + point; + + if(isAllNeededEntriesInitialized){ + group = groupList.get(i) ; + } + + group.add(new BarEntry(point, index)); + //groupList.add(group); + } + + group_average.add(new BarEntry(sumPoints/repeat, index)); + + isAllNeededEntriesInitialized = true;//all group arrays are initialized and filled with firts results + labels.add(nameTestItems[j]); + + index++; + } + } + + + BarData data = new BarData(labels); + + for(int k = 0; k < repeat ;k++){ + ArrayList<BarEntry> entries = groupList.get(k); + BarDataSet dataset = new BarDataSet(entries, "Points"); + dataset.setColors(ColorTemplate.COLORFUL_COLORS); + + final Echo echo = new Echo(k+1); + + dataset.setValueFormatter(new ValueFormatter() { + + @Override + public String getFormattedValue(float value, Entry entry, int i, ViewPortHandler viewPortHandler) { + return (int) value + " [" + echo.x +"]"; + } + }); + + + data.addDataSet(dataset); + + if(k == repeat-1){ //add data for average + //Log.i(TAG, "k:"+k + " repeat:"+repeat); + entries = groupList.get(k+1); + dataset = new BarDataSet(entries, "Points"); + dataset.setColor(ColorTemplate.rgb("#b6b2ae")); //set different color for average points + + if(repeat > 1) { //Show average group when repeat > 1 + dataset.setValueFormatter(new ValueFormatter() { + + @Override + public String getFormattedValue(float value, Entry entry, int i, ViewPortHandler viewPortHandler) { + return (int) value + " [avg]"; + } + }); + data.addDataSet(dataset); + } + } + + } + + + //final HorizontalBarChart chart = new HorizontalBarChart(this); + //setContentView(chart); + + setContentView(R.layout.chart); + + // Find the toolbar view inside the activity layout + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarId); + // Sets the Toolbar to act as the ActionBar for this Activity window. + // Make sure the toolbar exists in the activity and is not null + setSupportActionBar(toolbar); + + + final HorizontalBarChart chart = (HorizontalBarChart) findViewById(R.id.chartId); + Button saveBtn = (Button) findViewById(R.id.saveButtonId); + + saveBtn.setOnClickListener(new View.OnClickListener(){ + @Override + //On click function + public void onClick(View v) { + chart.saveToGallery("Chart_" + MainActivity.autoTestFileNameIdentifier + ".jpg", 100); + Toast.makeText(v.getContext(), "Chart was saved to Gallery", + Toast.LENGTH_SHORT).show(); + } + }); + + + data.setValueTextSize(8f); + chart.setData(data); + + + + chart.setDescription("# Benchmark Results"); + + chart.setDragEnabled(true); // on by default + //chart.setVisibleXRangeMaximum(15); + //chart.setVisibleXRangeMaximum(20); + chart.animateXY(3000, 3000); + + chart.setDrawValueAboveBar(false); + chart.setTouchEnabled(false); + + + chart.getAxisLeft().setStartAtZero(true); + chart.getAxisRight().setStartAtZero(true); + + + chart.invalidate(); + + setTitle("Benchmark Chart"); + } + + public class Echo{ + int x; + + public Echo(int x){ + this.x = x; + } + } + + +//********************************************************************************************** +}//Chart +//********************************************************************************************** diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/MainActivity.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/MainActivity.java index ce191b7..1c00b44 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/MainActivity.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/MainActivity.java @@ -32,6 +32,8 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; +import android.view.WindowManager; +import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; @@ -56,7 +58,9 @@ import java.math.BigInteger; import java.security.SecureRandom; import java.util.ArrayList; import java.util.Enumeration; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Properties; public class MainActivity extends AppCompatActivity implements View.OnClickListener { @@ -65,24 +69,21 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe private Button mStartButton; private Button mStartAutoButton; - private Button mSaveButton; + private Button mChartButton; private Button mInfo; private Button mShowHideDispay; - //private ListView mListView; private TextView mDisplayDetails; private static TextView mToolbarRepeatIndicator; - //public ArrayAdapter listAdapter; - ProgressDialog progressDialog; + public ProgressDialog progressDialog; private String mSelectedTest = ""; private String mSelectedClassTest = ""; - private String autoTestFileNameIdentifier = "Default"; + public static String autoTestFileNameIdentifier = "Default"; private String mTestResult = ""; private String mAllTestsResult = ""; public static String PACKAGE_NAME; private List<String> mAllTests; private ArrayList selectedClassTests; - final String[] classNameTestItems = new String[15]; private static String KEY_REPEAT_NUMBER = "repeat-number"; private static String KEY_FILE_FORMAT = "file-format"; @@ -117,16 +118,19 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe private TaskCanceler taskCanceler; private Handler handler = new Handler(); - public static long startTotalTime = 0; - public static long endTotalTime = 0; + public static long elapsedTotalTime = 0; public static String runningTests = ""; public static int APP_UID; public static String mStep; public static String mFrom; + public static String mSelectedTxt; + public static String GRAPHICS_ELAPSED_TIME = "graphics_elapsed_time"; + public static String GRAPHICS_ROUND = "graphics_round"; + public static Map<String, String> mapTimes = new HashMap<String, String>(); //************************* private int count; @@ -135,16 +139,48 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe int pixMin; public GridView mListViewGrid; + + public static final Lock LOCK = new Lock(); + + final String[] classNameTestItems = {"Test1", + "Test2", + "Test3", + "Test4", + "Test5", + "Test6", + "Test7", + "Test8", + "Test9", + "Test10", + "Test11", + "Test12", + "Test13", + "Test14", + "Test15", + "Test16", + "Test17", + "Test18", + "Test19", + "Test20", + "Test21", + "Test22", + "Test23", + "Test24", + "Test25"}; + //********************************************************************************************** @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + //Prevent screen off cause this will interrupt the some of tests running in own activity(GPU tests) + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + mContext = getApplicationContext(); mActivity = this; - APP_UID = android.os.Process.myUid(); + APP_UID = android.os.Process.myUid(); PACKAGE_NAME = getApplicationContext().getPackageName(); mStartButton = (Button) findViewById(R.id.startButton); @@ -162,6 +198,9 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe // Sets the Toolbar to act as the ActionBar for this Activity window. // Make sure the toolbar exists in the activity and is not null setSupportActionBar(toolbar); + getSupportActionBar().setTitle(" Benchmark Framework"); + //getSupportActionBar().setSubtitle(" Linaro Open source benchmarks"); + getSupportActionBar().setIcon(R.drawable.lmg_logo_toolbar); mToolbarRepeatIndicator = (TextView) findViewById(R.id.toolbar_repeat_indicator); mToolbarRepeatIndicator.setText(" "+mRepeatNumber+" "); @@ -169,8 +208,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe mStartAutoButton = (Button) findViewById(R.id.startAutoButton); mStartAutoButton.setOnClickListener(this); - mSaveButton = (Button) findViewById(R.id.saveButton); - mSaveButton.setOnClickListener(this); + mChartButton = (Button) findViewById(R.id.chartButton); + mChartButton.setOnClickListener(this); mInfo = (Button) findViewById(R.id.infoButton); mInfo.setOnClickListener(this); @@ -204,6 +243,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe public boolean onLongClick(View v) { // TODO Auto-generated method stub Intent i = new Intent(mActivity, Results.class); + //Intent i = new Intent(mActivity, Chart.class); startActivity(i); return true; } @@ -215,42 +255,31 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe SAVE_DATA_PATH = getFilesDir() + "/download"; TEMP_PATH = EXECUTABLE_PATH + "/temp"; - classNameTestItems[0] = "Test1"; - classNameTestItems[1] = "Test2"; - classNameTestItems[2] = "Test3"; - classNameTestItems[3] = "Test4"; - classNameTestItems[4] = "Test5"; - classNameTestItems[5] = "Test6"; - classNameTestItems[6] = "Test7"; - classNameTestItems[7] = "Test8"; - - classNameTestItems[8] = "Test9"; - classNameTestItems[9] = "Test10"; - classNameTestItems[10] = "Test11"; - classNameTestItems[11] = "Test12"; - classNameTestItems[12] = "Test13"; - classNameTestItems[13] = "Test14"; - classNameTestItems[14] = "Test15"; - - - String[] displayNames = new String[15]; - displayNames[0] = "MemSpeed"; - displayNames[1] = "RandMem"; - displayNames[2] = "Linaro-Libc-Bench"; - displayNames[3] = "Linaro-StringBench"; - displayNames[4] = "Linaro-Harness"; - displayNames[5] = "Linaro-Dhrystone"; - displayNames[6] = "Iozone"; - displayNames[7] = "Bonnie++"; - - displayNames[8] = "Algorithm(ART)"; - displayNames[9] = "BMsGame(ART)"; - displayNames[10] = "Caffeine(ART)"; - displayNames[11] = "Jit-aot(ART)"; - displayNames[12] = "Math(ART)"; - displayNames[13] = "Micro(ART)"; - displayNames[14] = "Stanford(ART)"; - + final String[] displayNames = {"MemSpeed", + "RandMem", + "Linaro-Libc-Bench", + "Linaro-StringBench", + "Linaro-Harness", + "Linaro-Dhrystone", + "Iozone", + "Bonnie++", + "Algorithm(ART)", + "BMsGame(ART)", + "Caffeine(ART)", + "Jit-out(ART)", + "Math(ART)", + "Micro(ART)", + "Stanford(ART)", + "DrawArc(GPU)", + "DrawCircle2(GPU)", + "DrawImage(GPU)", + "DrawRect(GPU)", + "DrawText(GPU)", + "DrawCircle(GPU)", + "Kubench(GPU)", + "Nehe08(GPU)", + "Nehe16(GPU)", + "TeapotES(GPU)"}; //*******************GridView******************* @@ -265,9 +294,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe IS_SHELL_CONTROL = false; //Check if shell control is used for tests - //This fix issue with NullPointer on mListViewGrid(invoke isShellControl() when mListViewGrid layout is already inflate) - mListViewGrid.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @SuppressLint("NewApi") @Override @@ -293,6 +320,45 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe // put your code here... } + + //********************************************************************************************** + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + switch(requestCode) { + case (100) : { + if (resultCode == Activity.RESULT_OK) { + // TODO Extract the data returned from the child Activity. + BaseBenchmark.elapsedFromActivityTest = data.getLongExtra(MainActivity. GRAPHICS_ELAPSED_TIME,0); + BaseBenchmark.mRound = data.getIntExtra(MainActivity.GRAPHICS_ROUND,0); + Log.i(TAG,"elapsed from activity test:" + BaseBenchmark.elapsedFromActivityTest); + synchronized (MainActivity.LOCK) { + MainActivity.LOCK.setCondition(true); + MainActivity.LOCK.notifyAll(); + } + + } + if (resultCode == Activity.RESULT_CANCELED) { + Log.i(TAG,"RESULT_CANCELED"); + + //Need to set isCanceled flag here + isCanceled = true; + + //Simulate click on calcel button + progressDialog.show(); + progressDialog.getButton(DialogInterface.BUTTON_NEGATIVE).performClick(); + + synchronized (MainActivity.LOCK) { + MainActivity.LOCK.setCondition(true); + MainActivity.LOCK.notifyAll(); + } + + } + break; + } + } + } + //********************************************************************************************** //Load benchmarks libraries when benchmark test is integrated as (*.so) //********************************************************************************************** @@ -310,7 +376,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe @Override public void onClick(View v) { - Log.i(TAG,"numberOfCheckedTests: " + numberOfCheckedTests); + Log.i(TAG, "numberOfCheckedTests: " + numberOfCheckedTests); if (v.getId() == R.id.startButton && numberOfCheckedTests > 0) { isAuto = false; @@ -328,10 +394,12 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe } else if (v.getId() == R.id.startButton && numberOfCheckedTests == 0) { Toast.makeText(v.getContext(), "Please select test...", Toast.LENGTH_SHORT).show(); - } else if (v.getId() == R.id.saveButton && testDone == 1) { - saveUIResultToFile(); - } else if (v.getId() == R.id.saveButton && testDone == 0) { - Toast.makeText(v.getContext(), "No results for save", + } else if (v.getId() == R.id.chartButton && testDone == 1) { + //saveUIResultToFile(); + Intent i = new Intent(mActivity, Chart.class); + startActivity(i); + } else if (v.getId() == R.id.chartButton && testDone == 0) { + Toast.makeText(v.getContext(), "No charts to show", Toast.LENGTH_SHORT).show(); } else if (v.getId() == R.id.startAutoButton) { isAuto = true; @@ -341,7 +409,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe } else if (v.getId() == R.id.infoButton) { String info = "[RUN TEST]: <font color=\"#6A996A\">Run selected tests</font><br><br> " + "[RUN AUTO]: <font color=\"#6A996A\">Run all tests in row and save results to file automatically</font><br><br> " + - "[SAVE]: <font color=\"#6A996A\">Save result shown on UI (display)</font><br><br> " + + "[CHART]: <font color=\"#6A996A\">Create chart for executed tests</font><br><br> " + "[Settings]: <br> - <font color=\"#6A996A\">Allow to control tests repeatability</font>" + "<br><br> - <font color=\"#6A996A\">Clear Data</font>" + "<br><br> - <font color=\"#6A996A\">File format</font>"+ @@ -543,12 +611,16 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe public void runTests(int timesToRun) { nextTestIndex = 0; allTestsCount = 0; + elapsedTotalTime = 0; mAllTests = new ArrayList<String>(); selectedClassTests = new ArrayList<String>(); mAllTestsResult = ""; selectedClassTests.clear(); mAllTests.clear(); + //Clear chart data + mapTimes.clear(); + //HTML BEGIN //Clear html string if(fileFormatFromSettings.equals("html")) { @@ -557,9 +629,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe //HTML END - //Get total start time from here - startTotalTime = System.currentTimeMillis(); - //Clear summary string runningTests = ""; //reset cancel flag @@ -895,8 +964,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe } - - //********************************************************************************************** //Run tests in shell control //********************************************************************************************** @@ -939,18 +1006,13 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe int mActivePosition = 0; - + //Do not need to remove checks in shell mode so commented!!! + /* for (String className : classNameTestItems) { - for (String selected : testsFromShell) { - if (className.equals(selected)) { - //Click on the current test - mGridViewAdapter.removeCheckAtPosition(mActivePosition, mListViewGrid); - } - - } + mGridViewAdapter.removeCheckAtPosition(mActivePosition, mListViewGrid); mActivePosition++; } - + */ mActivePosition = 0; @@ -960,7 +1022,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe for (String selected : testsFromShell) { if (className.equals(selected)) { //Click on the current test - mGridViewAdapter.performItemClick(mActivePosition,mListViewGrid); + testselection[mActivePosition] = true; + //mGridViewAdapter.performItemClick(mActivePosition, mListViewGrid); } } @@ -1128,9 +1191,16 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe @Override protected String doInBackground(String... params) { + //Log.i(TAG,"isCanceled " + isCanceled); + + //if tests are canceled just return + if(isCanceled) return ""; + + //In BaseBenchmark clear() method will try "STEP_FROM" replacement again to be sure it will be done on one of both replace places mStep = Integer.toString(stepN); mFrom = Integer.toString(repeatN); + mSelectedTxt = selectedTest; publishProgress(selectedTest, selectedClassTest, Integer.toString(stepN), Integer.toString(repeatN)); @@ -1154,7 +1224,23 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe } catch (Exception e) { e.printStackTrace(); resp = e.getMessage(); + //Get what we can from the output + if(fileFormatFromSettings.equals("html")) { + HtmlUtil.addTemplateExecute(); + HtmlUtil.replaceHtmlTag("EXECUTE", ""); + HtmlUtil.addTemplateParagraph(); + HtmlUtil.replaceHtmlTag("BODY", Interceptor.outputTxt); + Interceptor.clear(); + HtmlUtil.addTemplateEnd(); + } + + mTestResult = Interceptor.outputTxt; + mAllTestsResult = mAllTestsResult + "\n\n" + mTestResult; + + //Let's call GC + System.gc(); } + return selectedClassTest; } @@ -1188,21 +1274,21 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe if (result.equals(endTest) && endTestCounter == 0 && !isCanceled) { //if last one is finished and counter is 0 and is not Canceled - //Get total end time from here - endTotalTime = System.currentTimeMillis(); - double totalTime = (double) (endTotalTime - startTotalTime) / 1000; - + //Get total time at the end + double totalTime = (double) (elapsedTotalTime) / 1000; //Inform shell that tests are done writeToSocketFile("isFinished", "1"); //Set some info to shell about test status...where results are saved - writeToSocketFile("info", "Save result to: " + autoTestFile.getAbsolutePath()); + if(autoTestFile!=null) { + writeToSocketFile("info", "Save result to: " + autoTestFile.getAbsolutePath()); + } displayResult(mAllTestsResult);//UI display if(fileFormatFromSettings.equals("html")){ HtmlUtil.addTemplateSummary(); - HtmlUtil.replaceHtmlTag("TOTAL_TIME", String.format("%5.1f", totalTime) + " seconds"); + HtmlUtil.replaceHtmlTag("TOTAL_TIME", String.format("%5.4f", totalTime) + " seconds"); if(!IS_SHELL_CONTROL) { HtmlUtil.replaceHtmlTag("REPEAT", mRepeatNumber + " time(s)"); }else{ @@ -1224,7 +1310,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe //Decrement numberOfCheckedTests(need that because test is auto checked previously) if(isAuto){ - numberOfCheckedTests = 0; + //numberOfCheckedTests = 0; } Log.i(TAG, "selectedTest:" + selectedTest); @@ -1319,20 +1405,25 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe } }); - progressDialog.show(); + + String testNumber = selectedClassTest.replace("Test", ""); + if(!(Integer.parseInt(testNumber) >=16 && Integer.parseInt(testNumber) <=25)) { + progressDialog.show(); + } if (isAuto) { int mActivePosition = 0; - - //Do remove checks here + //Do remove all checks here for (String className : classNameTestItems) { - if (className.equals(text[1])) { - //Click on the current test - mGridViewAdapter.removeCheckAtPosition(mActivePosition, mListViewGrid); - } + //mGridViewAdapter.removeCheckAtPosition(mActivePosition, mListViewGrid); + + if(testselection[mActivePosition] == true){ + testselection[mActivePosition] = false; + numberOfCheckedTests--; + } mActivePosition++; } @@ -1344,7 +1435,9 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe for (String className : classNameTestItems) { if (className.equals(text[1])) { //Click on the current test - mGridViewAdapter.performItemClick(mActivePosition,mListViewGrid); + testselection[mActivePosition] = true; + numberOfCheckedTests++; + //mGridViewAdapter.performItemClick(mActivePosition,mListViewGrid); } mActivePosition++; @@ -1389,21 +1482,21 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe public View getView(int position, View convertView, ViewGroup parent) { + //Log.i(TAG,"getView_position:" +position); + ViewHolder holder; if (convertView == null) { + //Log.i(TAG,"getView_position_null:" +position); holder = new ViewHolder(); convertView = mInflater.inflate( R.layout.listview, null); holder.textview = (TextView) convertView.findViewById(R.id.itemText); holder.checkbox = (CheckBox) convertView.findViewById(R.id.itemCheckBox); - //holder.textview.setText(testsList[position]); - //holder.textview.setTextSize(getPixels(pixMin)); - convertView.setTag(holder); - //convertView.setBackgroundResource(R.drawable.grid_items_border); } else { + //Log.i(TAG,"getView_position_not_null:" +position); holder = (ViewHolder) convertView.getTag(); } holder.checkbox.setId(position); @@ -1441,12 +1534,16 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe public void removeCheckAtPosition(int i, GridView gr) { - //for(int i = 0; i < getCount(); i++) { + //It is needed to check the max index used in getView method(because max index can be smaller than count of gridview elements) + //So catch is used to prevent from crash when i is greater than max index used in getView + try { + //Log.i(TAG, "position:" + i); + ViewGroup gridChild = (ViewGroup) gr.getChildAt(i); int childSize = gridChild.getChildCount(); - for(int k = 0; k < childSize; k++) { - if( gridChild.getChildAt(k) instanceof CheckBox ) { - CheckBox cb = (CheckBox)gridChild.getChildAt(k); + for (int k = 0; k < childSize; k++) { + if (gridChild.getChildAt(k) instanceof CheckBox) { + CheckBox cb = (CheckBox) gridChild.getChildAt(k); //Log.i(TAG,""+i); if (testselection[i]) { cb.setChecked(false); @@ -1457,7 +1554,9 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe } } - //} + }catch(Exception e){ + Log.i(TAG, "(Expected error):removeCheckAtPosition:" + e.toString()); + } } @@ -1487,6 +1586,18 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe }//ViewHolder //********************************************************************************************** + //Use object of this class for synchronization + public static class Lock { + private boolean condition; + + public boolean conditionMet() { + return condition; + } + + public void setCondition(boolean condition) { + this.condition = condition; + } + } //********************************************************************************************** }//MainActivity diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test1.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test1.java index 34e4146..552bd8a 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test1.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test1.java @@ -20,6 +20,7 @@ public class Test1 extends BaseBenchmark{ version = " Android MemSpeed Benchmark 1.1"; benchmarkName = "Test1"; integrationType = "SL"; + chartName = "MemSpeed"; clear(); @@ -39,6 +40,10 @@ public class Test1 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(-1, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test10.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test10.java index 9bf754f..ad50ca6 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test10.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test10.java @@ -36,6 +36,7 @@ public class Test10 extends BaseBenchmark{ version = " BMsGame "; benchmarkName = "Test10"; integrationType = "SL"; + chartName = "BMsGame(ART)"; long before; long after; @@ -321,6 +322,10 @@ public class Test10 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test11.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test11.java index 0c4a015..8159645 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test11.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test11.java @@ -26,6 +26,7 @@ public class Test11 extends BaseBenchmark{ version = " Caffeine(ART) "; benchmarkName = "Test11"; integrationType = "SL"; + chartName = "Caffeine(ART)"; long before; long after; @@ -155,6 +156,10 @@ public class Test11 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test12.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test12.java index 983bf53..3d5ddc3 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test12.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test12.java @@ -22,6 +22,7 @@ public class Test12 extends BaseBenchmark{ version = " Jit-out "; benchmarkName = "Test12"; integrationType = "SL"; + chartName = "Jit-out(ART)"; long before; long after; @@ -48,10 +49,13 @@ public class Test12 extends BaseBenchmark{ Invoke obj = new Invoke(); before = System.currentTimeMillis(); + obj.timeRecursionInvokeVirtual(1000); obj.timeRecursionInvokeStatic(1000); obj.timeRecursionInvokeFinal(1000); obj.timeRecursionInvokePrivate(1000); + + after = System.currentTimeMillis(); if (!obj.verify()) { rc++; @@ -86,6 +90,10 @@ public class Test12 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test13.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test13.java index 660b99f..87b7fa6 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test13.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test13.java @@ -24,6 +24,7 @@ public class Test13 extends BaseBenchmark{ version = " Math(ART) "; benchmarkName = "Test13"; integrationType = "SL"; + chartName = "Math(ART)"; long before; long after; @@ -91,6 +92,10 @@ public class Test13 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test14.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test14.java index 3693a56..9834163 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test14.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test14.java @@ -37,6 +37,7 @@ public class Test14 extends BaseBenchmark{ version = " Micro(ART) "; benchmarkName = "Test14"; integrationType = "SL"; + chartName = "Micro(ART)"; long before; long after; @@ -630,6 +631,10 @@ public class Test14 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test15.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test15.java index d9475ef..6ebc1df 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test15.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test15.java @@ -41,6 +41,7 @@ public class Test15 extends BaseBenchmark{ version = " Stanford(ART) "; benchmarkName = "Test15"; integrationType = "SL"; + chartName = "Stanford(ART)"; long before; long after; @@ -268,6 +269,10 @@ public class Test15 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test16.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test16.java new file mode 100644 index 0000000..07a88bd --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test16.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.graphics.DrawArc; + + +/** + * Created by iasenov on 10/10/16. + */ +public class Test16 extends BaseBenchmark{ + + private String TAG = "DrawArc(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " DrawArc(GPU) "; + benchmarkName = "Test16"; + integrationType = "SL"; + chartName = "DrawArc(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, DrawArc.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 500); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test17.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test17.java new file mode 100644 index 0000000..4b2e242 --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test17.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.graphics.DrawArc; +import graphics_benchmarks.graphics.DrawCircle2; + +/** + * Created by iasenov on 10/10/16. + */ +public class Test17 extends BaseBenchmark{ + + private String TAG = "DrawCircle2(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " DrawCircle2(GPU) "; + benchmarkName = "Test17"; + integrationType = "SL"; + chartName = "DrawCircle2(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, DrawCircle2.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 300); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test18.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test18.java new file mode 100644 index 0000000..10a0893 --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test18.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.graphics.DrawCircle2; +import graphics_benchmarks.graphics.DrawImage; + +/** + * Created by iasenov on 10/10/16. + */ +public class Test18 extends BaseBenchmark{ + + private String TAG = "DrawImage(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " DrawImage(GPU) "; + benchmarkName = "Test18"; + integrationType = "SL"; + chartName = "DrawImage(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, DrawImage.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 500); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test19.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test19.java new file mode 100644 index 0000000..6ec7f17 --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test19.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.graphics.DrawImage; +import graphics_benchmarks.graphics.DrawRect; + +/** + * Created by iasenov on 10/10/16. + */ +public class Test19 extends BaseBenchmark{ + + private String TAG = "DrawRect(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " DrawRect(GPU) "; + benchmarkName = "Test19"; + integrationType = "SL"; + chartName = "DrawRect(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, DrawRect.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 300); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test2.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test2.java index 53ec02b..b9044bb 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test2.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test2.java @@ -22,6 +22,7 @@ public class Test2 extends BaseBenchmark{ version = " Android RandMem Benchmark 1.1 "; benchmarkName = "Test2"; integrationType = "SL"; + chartName = "RandMem"; clear(); @@ -42,6 +43,10 @@ public class Test2 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(-1, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test20.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test20.java new file mode 100644 index 0000000..9bf9479 --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test20.java @@ -0,0 +1,70 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.graphics.DrawRect; +import graphics_benchmarks.graphics.DrawText; + +/** + * Created by iasenov on 10/10/16. + */ +public class Test20 extends BaseBenchmark{ + + private String TAG = "DrawText(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " DrawText(GPU) "; + benchmarkName = "Test20"; + integrationType = "SL"; + chartName = "DrawText(GPU)"; + + + clear(); + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, DrawText.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 300); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test21.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test21.java new file mode 100644 index 0000000..5fd5120 --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test21.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.graphics.DrawCircle; +import graphics_benchmarks.graphics.DrawCircle2; + +/** + * Created by iasenov on 10/11/16. + */ +public class Test21 extends BaseBenchmark{ + + private String TAG = "DrawCircle(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " DrawCircle(GPU) "; + benchmarkName = "Test21"; + integrationType = "SL"; + chartName = "DrawCircle(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, DrawCircle.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 300); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test22.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test22.java new file mode 100644 index 0000000..72b1a75 --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test22.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.graphics.DrawCircle; +import graphics_benchmarks.kubench.Kubench; + +/** + * Created by iasenov on 10/11/16. + */ +public class Test22 extends BaseBenchmark{ + + private String TAG = "Kubench(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " Kubench(GPU) "; + benchmarkName = "Test22"; + integrationType = "SL"; + chartName = "Kubench(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, Kubench.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 1000); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test23.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test23.java new file mode 100644 index 0000000..c5866ff --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test23.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.kubench.Kubench; +import graphics_benchmarks.lesson08.RunNehe08; + +/** + * Created by iasenov on 10/11/16. + */ +public class Test23 extends BaseBenchmark{ + + private String TAG = "Nehe08(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " Nehe08(GPU) "; + benchmarkName = "Test23"; + integrationType = "SL"; + chartName = "Nehe08(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, RunNehe08.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 1000); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test24.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test24.java new file mode 100644 index 0000000..9db1f87 --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test24.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.lesson08.RunNehe08; +import graphics_benchmarks.lesson16.RunNehe16; + +/** + * Created by iasenov on 10/11/16. + */ +public class Test24 extends BaseBenchmark{ + + private String TAG = "Nehe16(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " Nehe16(GPU) "; + benchmarkName = "Test24"; + integrationType = "SL"; + chartName = "Nehe16(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, RunNehe16.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 1000); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test25.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test25.java new file mode 100644 index 0000000..d24c803 --- /dev/null +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test25.java @@ -0,0 +1,72 @@ +package org.linaro.iasenov.benchmarkframework; + +import android.content.Intent; +import android.util.Log; + +import graphics_benchmarks.lesson16.RunNehe16; +import graphics_benchmarks.teapot.TeapotES; + +/** + * Created by iasenov on 10/11/16. + */ +public class Test25 extends BaseBenchmark{ + + private String TAG = "TeapotES(GPU)"; + static boolean isJavaCanceled = false; + + public String startBenchmark(int count) { + + isJavaCanceled = false; + + version = " TeapotES(GPU) "; + benchmarkName = "Test25"; + integrationType = "SL"; + chartName = "TeapotES(GPU)"; + + + clear(); + + + startTest = 0;//System.currentTimeMillis(); + + MainActivity.LOCK.setCondition(false); + + Intent i = new Intent(MainActivity.mActivity, TeapotES.class); + i.putExtra(MainActivity.GRAPHICS_ROUND, 1000); + MainActivity.mActivity.startActivityForResult(i, 100); + + synchronized (MainActivity.LOCK) { + while (!MainActivity.LOCK.conditionMet()) { + try { + MainActivity.LOCK.wait(); + Log.i(TAG, "waiting is finished"); + } catch (InterruptedException e) { + Log.e(TAG, "Exception when waiting for condition", e); + } + } + } + + + float second = (elapsedFromActivityTest / 1000f); + float fps = (float) mRound / second; // milliseconds to seconds + + xout[2] = "Round = " + mRound +" fps = " + fps + "\n" + Interceptor.outputTxt; + Interceptor.clear(); + + endTest = elapsedFromActivityTest;//System.currentTimeMillis(); + + sendElapsedTimeToChart(); + + submitElapsedTime(endTest - startTest); + + //Log.i(TAG, "return"); + + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); + } + + public boolean stopBenchmark(){ + isJavaCanceled = true; + Log.i(TAG, "stopBenchmark: isJavaCanceled"); + return true; + } +} diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test3.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test3.java index c5b38c2..a488db5 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test3.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test3.java @@ -17,6 +17,7 @@ public class Test3 extends BaseBenchmark{ benchmarkName = "Test3"; executable_name = "cbench"; integrationType = "EX"; + chartName = "Linaro-Libc-Bench"; @@ -32,6 +33,10 @@ public class Test3 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test4.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test4.java index 39ba0d5..af46e7b 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test4.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test4.java @@ -14,6 +14,7 @@ public class Test4 extends BaseBenchmark{ benchmarkName = "Test4"; executable_name = "stringbench"; integrationType = "EX"; + chartName = "Linaro-StringBench"; clear(); @@ -27,6 +28,10 @@ public class Test4 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test5.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test5.java index a28ba74..9c285cc 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test5.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test5.java @@ -15,6 +15,7 @@ public class Test5 extends BaseBenchmark{ benchmarkName = "Test5"; executable_name = "harness"; integrationType = "EX"; + chartName = "Linaro-Harness"; clear(); @@ -27,6 +28,10 @@ public class Test5 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test6.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test6.java index db990cf..e897bbc 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test6.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test6.java @@ -15,6 +15,7 @@ public class Test6 extends BaseBenchmark{ benchmarkName = "Test6"; executable_name = "dhry"; integrationType = "EX"; + chartName = "Linaro-Dhrystone"; clear(); @@ -26,6 +27,10 @@ public class Test6 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test7.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test7.java index 6bfb515..8c7715f 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test7.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test7.java @@ -17,6 +17,7 @@ public class Test7 extends BaseBenchmark { benchmarkName = "Test7"; executable_name = "iozone"; integrationType = "EX"; + chartName = "Iozone"; clear(); @@ -29,6 +30,10 @@ public class Test7 extends BaseBenchmark { endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test8.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test8.java index 6938826..c02f045 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test8.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test8.java @@ -14,6 +14,7 @@ public class Test8 extends BaseBenchmark { benchmarkName = "Test8"; executable_name = "bonnie"; integrationType = "EX"; + chartName = "Bonnie++"; clear(); @@ -26,6 +27,10 @@ public class Test8 extends BaseBenchmark { endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } diff --git a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test9.java b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test9.java index f0a885d..51f0531 100644 --- a/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test9.java +++ b/BenchmarkFramework/app/src/main/java/org/linaro/iasenov/benchmarkframework/Test9.java @@ -30,6 +30,7 @@ public class Test9 extends BaseBenchmark{ version = " Algorithm "; benchmarkName = "Test9"; integrationType = "SL"; + chartName = "Algorithm(ART)"; long before; long after; @@ -254,6 +255,10 @@ public class Test9 extends BaseBenchmark{ endTest = System.currentTimeMillis(); + sendElapsedTimeToChart(); + + submitElapsedTime(endTest-startTest); + return benchmarkName + ":" + getBenchmarkResult(5, integrationType); } |